编写一个过程。要求有一个IN参数和一个OUT参数。IN参数用于接受传递过来的借书证条码,然后在表T_user(用户表中)检索有无该读者,如有则将该读者的名称赋给OUT参数。如没有则提示信息“没有找到该读者” .
写出全过程者给高分!还有,各位高手?怎么在select语句中根据一个字段判断另外一个字段为空啊?
或者说是在pl/sql中或者是在select语句中判断一个字段为空 也可以!
(注意: 环境oracle9.i)
写出全过程者给高分!还有,各位高手?怎么在select语句中根据一个字段判断另外一个字段为空啊?
或者说是在pl/sql中或者是在select语句中判断一个字段为空 也可以!
(注意: 环境oracle9.i)
begin
select DECODE (tu.username, 'NULL', '没有找到该读者', tu.username) into v_UserName from T_user tu where tu.usercode = v_UserCode;
end get_user_name;
(in_code IN VARCHAR2,
out_code out varchar2
)
ISBEGIN
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;
/
第一句,先用count(*)来判断有没有纪录,没有的话,直接输出没有该读者,=1就再搜索下名字
这个out模式的参数怎么传啊?
偶不会?
怎么老是ORA-06550: 第 2 行, 第 18 列:
PLS-00201: 必须说明标识符 'OUT'
ORA-06550: 第 2 行, 第 1 列:
PL/SQL: Statement ignored
右击test ,传入一个只有书编号,没有读者的一行信息的编号时.
怎么没有"'没有找该读者'; "的提示
这个'没有找该读者'; 显示在哪?
偶是第一次接触oracle,不要见笑!
其实你这用自定义函数就行了
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; select test('3') from dual
(in_code VARCHAR2, )
RETURN varchar2
IS
out_code varchar2(100) ;BEGIN
select nvl(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;