LINUX.ORG.RU

linux + oracle + sqlplus + awk, после миграции не отрабатывает скрипт

 


0

1

Привет всем.

Подскажите, как найти причину несрабатывания скрипта. После миграции log_id все время получается пустым.

log_id=$(sqlplus -s /nolog <<-EOF|awk 'NR==2 {print $1}' set head off set feed off set pagesize 0 conn $DBCONN_AUDIT select pls_audit.get_id_log from dual; #EOF)

Ранее уже выяснили, что проблема была в awk. Было awk -F\t Стало awk '-F\t' (работает отлично).

Просьба к знатокам awk подсказать, что подправить здесь (если проблема тоже в awk)? Заранее благодарен.

Покажи образец того, что идет на вход awk, и то, что тебе надо из него получить.

yoghurt ★★★★★
()

Before migration:

$ cat /etc/*{release,version}

Oracle Solaris 10 9/10 s10s_u9wos_14a SPARC

Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.

Assembled 11 August 2010

Oracle 10

After migration:

$ uname -a

SunOS nap7-plsm5k-1 5.10 Generic_144488-10 sun4u sparc SUNW,SPARC-Enterprise

Oracle 11g

marchello
() автор топика

Оно все в одну строчку написано?

IMHO конструкции с <<WORD пишутся не в одну строку.

Я бы понял, если бы оно было что-то типа

log_id=$(sqlplus -s /nolog <<-EOF|awk 'NR==2 {print $1}'
set head off
set feed off
set pagesize 0
conn $DBCONN_AUDIT 
select pls_audit.get_id_log from dual;
EOF
)

Что за переменная окружения DBCONN_AUDIT - на знаю.

vel ★★★★★
()
Ответ на: комментарий от vel

сделал как показано:

log_id=$(sqlplus -s /nolog <<-EOF|awk 'NR==2 {print $1}' set head off set feed off set pagesize 0 conn $DBCONN_AUDIT select pls_audit.get_id_log from dual; EOF )

добавил set -x

+ sqlplus -s /nolog + awk NR=='2 {print $1}' + 0<< \EOF set head off set feed off set pagesize 0 conn flatbed/flt3#tb3d@plspro select pls_audit.get_id_log from dual; EOF + log_id=" + sqlplus /nolog + 0<< \EOF

есть идеи?

marchello
() автор топика
Ответ на: комментарий от marchello

гм. ты бы результат в тег code завернул бы, а то нифига не понять.

я бы попробовал выполнить

echo -e "conn flatbed/flt3#tb3d@plspro\nselect pls_audit.get_id_log from dual;" | sqlplus -s /nolog

Если результат пустой - значит что-то не так в базе.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от vel

Результат есть:

echo -e "conn flatbed/flt3#tb3d@plspro\nselect pls_audit.get_id_log from dual;" | sqlplus -s /nolog

GET_ID_LOG
----------
  33363309

Как можно убрать «get_id_log» и "-------" ? Или как исправить изначальный код?

marchello
() автор топика
Ответ на: комментарий от marchello

добавить в команду «set head off\nset feed off\nconn flatbed...»

vel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.