0

我有一个在 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

我究竟做错了什么?

4

2 回答 2

0

每当我做这样的事情时,我都不使用 BEGIN 和 END 语句。将重定向输入与您从键盘输入的输入完全相同。

于 2012-09-28T16:07:53.660 回答
0

当您使用 begin 和 end 时,Oracle 将视为匿名过程并期望变量声明和 into 子句将值分配给变量。

删除开始和结束并尝试。如果你想要 Begin End 然后声明相应数据类型的变量并尝试。

于 2013-11-27T10:43:36.420 回答