Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> linux + oracle + sqlplus + awk, после миграции не отрабатывает скрипт 
:(
    Опции темы
Efes
  Дата 8.12.2014, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 24.10.2012

Репутация: нет
Всего: нет



Привет всем. 

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

В предыдущей ветке 
http://forum.vingrad.ru/forum/act-ST/f-122...4/unread-1.html
выяснили, что проблема была в awk. 

Было 
Код

awk -F\t


поправил на 
Код

awk '-F\t'

(работает отлично). 

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

Код

        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)


До миграции:
Код

$ 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

После миграции:
Код

$ uname -a

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

Oracle 11g


Это сообщение отредактировал(а) Efes - 8.12.2014, 20:38
PM MAIL   Вверх
tzirechnoy
Дата 8.12.2014, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Скорее всего -- нужно просто EOF), а не #EOF) -- и если да, то у вас при миграцыи произошла какая-то херня с табами в скриптах.

Но если нет -- то покажыте вывод при включённом xtrace (т.е. добавьте строчку set -x перед этой строкой), и заодно, покажыте вывод SELECT pls_audit.get_id_log from dual;
PM MAIL   Вверх
Efes
Дата 8.12.2014, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 24.10.2012

Репутация: нет
Всего: нет



Цитата(tzirechnoy @ 8.12.2014,  20:57)
Скорее всего -- нужно просто EOF), а не #EOF) -- и если да, то у вас при миграцыи произошла какая-то херня с табами в скриптах.

Но если нет -- то покажыте вывод при включённом xtrace (т.е. добавьте строчку set -x перед этой строкой), и заодно, покажыте вывод SELECT pls_audit.get_id_log from dual;

 Добавил set -x, вот результат: 

Код

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



SELECT pls_audit.get_id_log from dual

2225700 

(сиквенс работает нормально). 

Есть идеи? 
PM MAIL   Вверх
Efes
  Дата 8.12.2014, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 24.10.2012

Репутация: нет
Всего: нет



А так работает: 

Код

echo -e "conn user1/pass1@plspro\nselect pls_audit.get_id_log from dual;" | sqlplus -s /nolog

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


Пожалуйста, помогите исправить изначальный код.
PM MAIL   Вверх
tzirechnoy
Дата 9.12.2014, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Так, а если через эхо добавить set head off\nset feed off\nset pagesize 0 -- то какой результат sqlplus -s /nolog будет?

Да, Вы, кстати, попробовали убрать # в строке EOF -- изменилось ли что-нибудь?

(то есть код в принцыпе, кроме этого момента с решёткой -- банальный, всего-то записывает в переменную первое поле второй строку вывода sqlplus с таким вводом.)
PM MAIL   Вверх
Efes
  Дата 9.12.2014, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 24.10.2012

Репутация: нет
Всего: нет



А что вообще значит вот та часть? 

Код

{print $1}

PM MAIL   Вверх
tzirechnoy
Дата 9.12.2014, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Напечатать первое поле и перевод строки.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.1213 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.