读书人

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

发布时间: 2012-02-01 16:58:19 作者: rapoo

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; 

读书人网 >oracle

热点推荐