是出错还是找不到这条记录?Select NVL(gxbj,4) Into v_GXBJ From DJ_JTSJ Where jh=p_JingHao;这样找不到记录的话就给变量v_GXBJ赋了初值4。
找不到这条记录 我先赋了初值v_GXBJ ='否',执行到这一段还是出错.
select into 变量 时如果没有符合条件的记录会出错的,可以把语句嵌进块中,用异常捕获 如: begin Select gxbj Into v_GXBJ From DJ_JTSJ Where jh=p_JingHao; EXCEPTION/*处理异常*/ WHEN OTHERS THEN null; end;
begin --加入匿名块,进行处理 begin Select gxbj Into v_GXBJ From DJ_JTSJ Where jh=p_JingHao; EXCEPTION WHEN NO_Data_Found THEN v_GXBJ:=4; end; --你接下来的语句 end;
可以用异常处理 NO_DATA_FOUND来处理 1 create or replace procedure p_test 2 as 3 v_G VARCHAR2(10); 4 begin 5 begin 6 select name into v_G from test where id =1; 7 exception 8 when no_data_found then 9 v_G:='hhh'; 10 end; 11 dbms_output.put_line(v_G); 12* END; SQL> /过程已创建。SQL> exec p_testPL/SQL 过程已成功完成。SQL> set serveroutput on SQL> exec p_test; hhhPL/SQL 过程已成功完成。 不知道这样能否是你想要的亚
我先赋了初值v_GXBJ ='否',执行到这一段还是出错.
如:
begin
Select gxbj Into v_GXBJ From DJ_JTSJ Where jh=p_JingHao;
EXCEPTION/*处理异常*/
WHEN OTHERS THEN
null;
end;
--加入匿名块,进行处理
begin
Select gxbj Into v_GXBJ From DJ_JTSJ Where jh=p_JingHao;
EXCEPTION WHEN NO_Data_Found THEN
v_GXBJ:=4;
end;
--你接下来的语句
end;
NO_DATA_FOUND来处理 1 create or replace procedure p_test
2 as
3 v_G VARCHAR2(10);
4 begin
5 begin
6 select name into v_G from test where id =1;
7 exception
8 when no_data_found then
9 v_G:='hhh';
10 end;
11 dbms_output.put_line(v_G);
12* END;
SQL> /过程已创建。SQL> exec p_testPL/SQL 过程已成功完成。SQL> set serveroutput on
SQL> exec p_test;
hhhPL/SQL 过程已成功完成。
不知道这样能否是你想要的亚
您看到这个页面
肯定是什么地方出错了
人难免会犯错
机器亦然
如果您没有搞错地址
多半是现在系统太忙
稍等片刻再试试