创建定时任务的时候,图形化界面生成的代码如何不可以在命令窗口实现啊
创建定时任务的时候,图形化界面生成的代码怎么不可以在命令窗口实现啊?
创建定时任务的时候,通过图像话界面的方法,如下:
产生了如下的代码:
我单击“应用”的时候,后来验证,创建的定时任务可以使用。
但是当我把上述代码放到命令窗口,并加上job变量的声明的时候,
一直提示下面的错误:
ORA-01008: 并非所有变量都已绑定。后来上网查找之后,才知道,只要吧job前面的“:”去掉就可以了。
所以我就想不通了,为什么通过图形化界面生成的PL/SQL程序块必须要修改之后才可以使用呢?
谢谢!
------解决方案--------------------
冒号的含义是引用“宿主”的变量,你直接写在declare 下面这就是 plsql匿名块自己的变量了,当然不需要冒号
你直接在sqlplus 里面
创建定时任务的时候,通过图像话界面的方法,如下:
产生了如下的代码:
- SQL code
begin sys.dbms_job.submit(job => :job, what => 'pro_job;', next_date => to_date('12-08-2012 16:48:59', 'dd-mm-yyyy hh24:mi:ss'), interval => 'sysdate+1/24'); commit; end; /
我单击“应用”的时候,后来验证,创建的定时任务可以使用。
但是当我把上述代码放到命令窗口,并加上job变量的声明的时候,
- SQL code
declare job number;
一直提示下面的错误:
ORA-01008: 并非所有变量都已绑定。后来上网查找之后,才知道,只要吧job前面的“:”去掉就可以了。
所以我就想不通了,为什么通过图形化界面生成的PL/SQL程序块必须要修改之后才可以使用呢?
谢谢!
------解决方案--------------------
冒号的含义是引用“宿主”的变量,你直接写在declare 下面这就是 plsql匿名块自己的变量了,当然不需要冒号
你直接在sqlplus 里面
- SQL code
[TEST@myoracle] SQL>var job number;
------解决方案--------------------
直接输入JOB号就可以了,为什么还用变量,实现方式都一样,传入个JOB号
------解决方案--------------------
- SQL code
begin select count(*) into :job from scott.emp; end;
------解决方案--------------------
这种问题不能纠结楼主。