日期:2014-05-17  浏览次数:20738 次

100分求一个简单的存储过程!解决了,立即结帖!!!
编写一个过程。要求有一个IN参数和一个OUT参数。IN参数用于接受传递过来的借书证条码,然后在表T_user(用户表中)检索有无该读者,如有则将该读者的名称赋给OUT参数。如没有则提示信息“没有找到该读者” .
写出全过程者给高分!

还有,各位高手?怎么在select语句中根据一个字段判断另外一个字段为空啊? 
  
或者说是在pl/sql中或者是在select语句中判断一个字段为空 也可以!
(注意: 环境oracle9.i)

------解决方案--------------------
SQL code
create or replace procedure get_user_name( v_UserCode in char, v_UserName out char) is
begin
  select  DECODE (tu.username, 'NULL', '没有找到该读者', tu.username) into  v_UserName  from T_user  tu where tu.usercode = v_UserCode;
end get_user_name;

------解决方案--------------------
CREATE OR REPLACE PROCEDURE test
(in_code IN VARCHAR2,
out_code out varchar2
)
IS

BEGIN
 
select name into 
out_code
from t_user
where code=in_code ; 
 


 
EXCEPTION
WHEN NO_DATA_FOUND THEN
out_code:='没有找该读者';
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END test;
/
------解决方案--------------------
out 参数要事先定义个变量的再传进去的
其实你这用自定义函数就行了

SQL code

CREATE OR REPLACE FUNCTIONtest 
(in_code  VARCHAR2, 

) 
RETURN varchar2
IS 
out_code  varchar2(100) ;

BEGIN 
    
   select name into  
          out_code 
       from t_user 
       where code=in_code  ;  
    


    return out_code;
   EXCEPTION 
     WHEN NO_DATA_FOUND THEN 
       return '没有找该读者'; 
     WHEN OTHERS THEN 
       -- Consider logging the error and then re-raise 
       RAISE; 
END test;