报的是什么错误呀,不过规范点的话,写存储过程时最好: CREATE OR REPLACE PROCEDURE Insert_Leader( …… 不然,如果数据库中已经存在该过程时也会报错:)
if LeaderName =''改为: if lengeh(ltrim(rtrim(LeaderName))) = 0
if LeaderName ='' begin Result := '负责人姓名不可为空'; exit; end if ;应改为if LeaderName ='' then Result := '负责人姓名不可为空'; exit; end if ;
修改后,编译还是通不过,不过只剩一个Bugcreate Procedure Insert_Leader( LeaderName In char, LeaderPhone In char, LeaderFax In Char, Result Out char) As begin if length(Ltrim(Rtrim(LeaderName)) =0 then Result := '负责人姓名不可为空'; exit; end if; Insert Into Leader Values(1,LeaderName,LeaderPhone,LeaderFax); Result := '成功增加负责人记录'; exception Result ='增加负责人记录失败'; end Insert_Leader; 提示Exception 问题 Exception如何使用,我想判断往表中插入记录,如果出错,就执行Exception后的语句,不胜感谢,调试通过,一定给分
Result ='增加负责人记录失败';------> Result :='增加负责人记录失败';
create Procedure Insert_Leader( LeaderName In char, LeaderPhone In char, LeaderFax In Char, Result Out char) As begin if LeaderName is null then Result := '负责人姓名不可为空'; exit; end if; Insert Into Leader Values('1',LeaderName,LeaderPhone,LeaderFax); Result := '成功增加负责人记录'; exception when others then Result ='增加负责人记录失败'; end Insert_Leader; /
同意 beckhambobo(beckham)
同意个头 我看还是 回复人: dihai2000(haifeng) 的对
exception Result ='增加负责人记录失败'; 应该改为: EXCEPTION WHEN OTHERS THEN Result ='增加负责人记录失败';
把beckhambobo(beckham)代码中的 when others then Result ='增加负责人记录失败'; 改为: when others then Result :='增加负责人记录失败';
create Procedure Insert_Leader( LeaderName In varchar2, LeaderPhone In varchar2, LeaderFax In varchar2, Result Out varchar2) As begin if LeaderName is null then Result := '负责人姓名不可为空'; exit; end if; Insert Into Leader Values(1,LeaderName,LeaderPhone,LeaderFax); Result := '成功增加负责人记录'; exception when others then Result :='增加负责人记录失败'; end Insert_Leader; 改正后,提示Exit语句出错,Oracle中退出存储过程是这条语句吗
把exit改为return, exit用于退出循环。
sorry,忘记了提醒一句: Error: PLS-00376: illegal EXIT statement; it must appear inside a loop只能用在循环条件语句。create or replace procedure name_pro(p1 in varchar2,p2 out varchar2) as begin if p1='1' then p2:='yes'; return; end if; p2:='no'; end; /SQL> set serveroutput on SQL> declare 2 a varchar2(10); 3 begin 4 name_pro('1',a); 5 dbms_output.put_line(a); 6 end; 7 / yes
CREATE OR REPLACE PROCEDURE Insert_Leader(
……
不然,如果数据库中已经存在该过程时也会报错:)
if lengeh(ltrim(rtrim(LeaderName))) = 0
begin
Result := '负责人姓名不可为空';
exit;
end if ;应改为if LeaderName ='' then
Result := '负责人姓名不可为空';
exit;
end if ;
LeaderName In char,
LeaderPhone In char,
LeaderFax In Char,
Result Out char)
As
begin
if length(Ltrim(Rtrim(LeaderName)) =0 then
Result := '负责人姓名不可为空';
exit;
end if;
Insert Into Leader Values(1,LeaderName,LeaderPhone,LeaderFax);
Result := '成功增加负责人记录';
exception
Result ='增加负责人记录失败';
end Insert_Leader;
提示Exception 问题
Exception如何使用,我想判断往表中插入记录,如果出错,就执行Exception后的语句,不胜感谢,调试通过,一定给分
LeaderName In char,
LeaderPhone In char,
LeaderFax In Char,
Result Out char)
As
begin
if LeaderName is null then
Result := '负责人姓名不可为空';
exit;
end if;
Insert Into Leader Values('1',LeaderName,LeaderPhone,LeaderFax);
Result := '成功增加负责人记录';
exception
when others then
Result ='增加负责人记录失败';
end Insert_Leader;
/
我看还是
回复人: dihai2000(haifeng)
的对
Result ='增加负责人记录失败';
应该改为:
EXCEPTION
WHEN OTHERS THEN
Result ='增加负责人记录失败';
when others then
Result ='增加负责人记录失败';
改为:
when others then
Result :='增加负责人记录失败';
create Procedure Insert_Leader(
LeaderName In varchar2,
LeaderPhone In varchar2,
LeaderFax In varchar2,
Result Out varchar2)
As
begin
if LeaderName is null then
Result := '负责人姓名不可为空';
exit;
end if;
Insert Into Leader Values(1,LeaderName,LeaderPhone,LeaderFax);
Result := '成功增加负责人记录';
exception
when others then
Result :='增加负责人记录失败';
end Insert_Leader;
改正后,提示Exit语句出错,Oracle中退出存储过程是这条语句吗
Error: PLS-00376: illegal EXIT statement; it must appear inside a loop只能用在循环条件语句。create or replace procedure name_pro(p1 in varchar2,p2 out varchar2)
as
begin
if p1='1' then
p2:='yes';
return;
end if;
p2:='no';
end;
/SQL> set serveroutput on
SQL> declare
2 a varchar2(10);
3 begin
4 name_pro('1',a);
5 dbms_output.put_line(a);
6 end;
7 /
yes