问题描述:
oracle学习新手,最近在学习函数与存储过程,在建立一个函数后,进行调用的时候一直显示有误,但检查代码未发现有任何问题,错误显示如下:
问题解决:
问题竟然出在空格问题上:在into: 与id 之间多了个空格符,所以显示有错误的产生,直接就无奈了
ora-01008的问题是更新语句中,可以直接使用PL/SQL的变量,不需要加冒号。
加上冒号是动态sql绑定变量的用法。
另外,SELECT语句有两个字段,在into语句中也需要两个对应的变量。
DECLARE job NUMBER;
begin
sys.dbms_job.submit(job =>:job,
what => 'docontractreports;',
next_date => to_date('05-11-2010', 'dd-mm-yyyy'),
interval => 'trunc(sysdate, ''HH24'') + 1/2');
SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(job));
commit;
end;
/
ORA-01008: 并非所有变量都已绑定
经查询,是因为多了个冒号":", 把冒号去掉就ok 了。
改正后
DECLARE job NUMBER;
begin
sys.dbms_job.submit(job =>job, --注意:此处没有冒号了
what => 'docontractreports;',
next_date => to_date('05-11-2010', 'dd-mm-yyyy'),
interval => 'trunc(sysdate, ''HH24'') + 1/2');
SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(job));
commit;
end;
/