Я пытаюсь выполнить процедуру из сценария оболочки и заканчивая ошибкой:PLS-00103 ошибка при выполнении процедуры
Пожалуйста, помогите мне в этом:
сообщениеdefault_shipment_date()
{
log_writer "$pgm_name" "[INFO] $pgm_name - In default_shipment_date Function"
sqlplus -S $CTGAUTH_LOGIN/[email protected]$CTGAUTH_TNSNAMES <<-EOF >> $LOG_DIR/${pgm_name}_${TODAY}.log 2> $LOG_DIR/${pgm_name}_${TODAY}.err
SET SERVEROUTPUT ON
BEGIN
EXECUTE DEFAULT_SHIPMENT_DATE();
END;
/
exit
EOF
log_writer "$pgm_name" "[INFO] $pgm_name - Exiting default_shipment_date Function"
}
Ошибка показано ниже :
Thu Jul 2 03:24:39 EDT 2015) - [INFO] ctg_new_prds - In default_shipment_date Function
EXECUTE DEFAULT_SHIPMENT_DATE();
*
ERROR at line 2:
ORA-06550: line 2, column 9:
PLS-00103: Encountered the symbol "DEFAULT_SHIPMENT_DATE" when expecting one of
the following:
:= . (@ % ; immediate
The symbol ":=" was substituted for "DEFAULT_SHIPMENT_DATE" to continue.
'execute' просто SQL \ * Plus стенографии для анонимного блока в любом случае; он завершает команду в 'begin' /' end', что вы можете увидеть, если вы попытаетесь выполнить что-то недействительное. Таким образом, вы не препятствуете переключению контекста. –
Да, ты прав Алекс. Я не думал должным образом, должен попытаться прекратить слишком много думать сразу :-) Спасибо, что указали это. – Ollie
Полагаю, вы, наверное, знали, что на самом деле * 8-) Я был гонг, чтобы сказать, что они взаимозаменяемы; но это не совсем так; 'execute' не заменяет командный буфер SQL \ * Plus, который иногда может быть удобным. –