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
.....