当前位置: 代码迷 >> Oracle管理 >> 100分简单的存储过程!解决了,立即结帖!
  详细解决方案

100分简单的存储过程!解决了,立即结帖!

热度:40   发布时间:2016-04-24 05:55:37.0
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) isbegin  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 varchar2IS 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;
  相关解决方案