我在unix上运行了一个shell脚本。像这样:
$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
我做错了什么?
答案 0 :(得分:0)
每当我做这样的事情时,我都不会使用BEGIN和END语句。可以认为重定向的输入与从键盘输入的输入完全相同。
答案 1 :(得分:0)
当您使用begin和end时,Oracle将视为Anonymous过程并期望变量声明和into子句将值分配给变量。
删除开头和结束并尝试。 如果你想要Begin End,那么声明相应数据类型的变量并尝试。