Ошибка при вызове sql из сценария оболочки Unix - PullRequest
0 голосов
/ 11 октября 2011

У меня есть скрипт оболочки, работающий на Unix.Вот так:

$ORACLE_HOME/bin/sqlplus -s '/ as sysdba' <<EOF
set head on; 
set feed on;
set serveroutput on;
set linesize 250;   
set pagesize 1000;
column STATUS new_value VAR_STATUS ;
column JOB_NAME new_value VAR_JOB_NAME ;
BEGIN
SELECT JOB_NAME, STATUS
FROM DBA_SCHEDULER_JOB_RUN_DETAILS WHERE JOB_NAME = 'SOME_JOB' AND ACTUAL_START_DATE IN (SELECT MAX(ACTUAL_START_DATE) FROM DBA_SCHEDULER_JOB_RUN_DETAILS);

END;

/
exit
EOF

Я получаю ошибку:

ERROR at line 2:
ORA-06550: line 2, column 1:
PLS-00428: an INTO clause is expected in this SELECT statement

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2013

Когда вы используете начало и конец, Oracle будет обрабатываться как анонимная процедура и ожидать объявления переменной и в предложении для присвоения значений переменным.

Удалите начало и конец и попробуйте.Если вы хотите начать конец, объявите переменные соответствующего типа данных и попробуйте.

0 голосов
/ 28 сентября 2012

Всякий раз, когда я делаю подобные вещи, я не использую операторы BEGIN и END.Думайте о перенаправленном вводе точно так же, как вы печатаете его с клавиатуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...