ORACLE 存储过程ORA-00900:无效SQL语句CREATE OR REPLACE PROCEDURE proc_clrwl_ds1(unit in nvarchar2,)i
ORACLE 存储过程 ORA-00900:无效SQL语句 CREATE OR REPLACE PROCEDURE proc_clrwl_ds1 ( unit in nvarchar2, ) is t number; adpt_name nvarchar2(50); begin t:=40; if (t<=120) then begin select dpt_name into adpt_name from usr_dpt; commit; end; else begin select dpt_name into adpt_name from usr_dpt where dpt_name=unit; commit; end; end if; commit; end;
而且你的代码中select dpt_name into adpt_name from usr_dpt; 这一句没有条件,取出来的值可能会有多条! 另外t:=40; if (t<=120) then ... 这句代码已经明确了t的值是40 ,应该是走不到else判断吧! [解决办法] 这个过程编译都通不过还执行啊? [解决办法] CREATE OR REPLACE PROCEDURE proc_clrwl_ds1 ( unit in nvarchar2, )
这里面多了个逗号,如果多个参数,用逗号 [解决办法] 此存储过程太多毛病了,除了楼上所说的以外,select dpt_name into adpt_name from usr_dpt;这条语句都有可能报异常,如果查询不到的话就是空值,空值怎么赋值给adpt_name变量呢?要加个异常判断 EXCEPTION WHEN OTHERS THEN .....