这是oracle自定义函数:
create or replace function f_Get_sysinfo
(name varchar2,type varchar2)
return varchar
IS
Returns varchar2(100) :='';
begin
if type='0' then
select value into Returns from t_Pd_Sys_Info where name=name;
else if type='1' then
select DISPLAY into Returns from t_Pd_Sys_Info where name=name;
end if;
end if;
RETURN(Returns);
end f_Get_sysinfo;这是执行语句:select f_Get_sysinfo('ORGID','0') FROM DUAL
如果没有值应该返回的是null或者空,怎么我第一次执行后可以得到正常的值,但我换了变量后,还是返回的第一次得到的值。为什么啊? 各位高手有没有人知道原因?我oracle不懂啊。
create or replace function f_Get_sysinfo
(name varchar2,type varchar2)
return varchar
IS
Returns varchar2(100) :='';
begin
if type='0' then
select value into Returns from t_Pd_Sys_Info where name=name;
else if type='1' then
select DISPLAY into Returns from t_Pd_Sys_Info where name=name;
end if;
end if;
RETURN(Returns);
end f_Get_sysinfo;这是执行语句:select f_Get_sysinfo('ORGID','0') FROM DUAL
如果没有值应该返回的是null或者空,怎么我第一次执行后可以得到正常的值,但我换了变量后,还是返回的第一次得到的值。为什么啊? 各位高手有没有人知道原因?我oracle不懂啊。
select f_Get_sysinfo('ORGID','0') FROM DUAL
select f_Get_sysinfo('ORGID','1') FROM DUAL
这两条语句执行结果一样吗?
这个结果是不一样的,但是执行后,换个变量
比如:
select f_Get_sysinfo('ORGID','0') FROM DUAL 返回:44032
select f_Get_sysinfo('ORGID','1') FROM DUAL 返回:'名称'
然后:
select f_Get_sysinfo('TZS_CXQZ','0') FROM DUAL 返回的还是:44032
select f_Get_sysinfo('TZS_CXQZ','1') FROM DUAL 返回的还是:'名称'
数据库中应该是:001 和 张翼 两个值
(p_name varchar2,type varchar2)
return varchar
IS
Returns varchar2(100) :='';
begin
if type='0' then
select value into Returns from t_Pd_Sys_Info where name=p_name ;
else if type='1' then
select DISPLAY into Returns from t_Pd_Sys_Info where name=p_name ;
end if;
end if;
RETURN(Returns);
end f_Get_sysinfo;
select value into Returns from t_Pd_Sys_Info where name=name;变量名和字段名不要用同样的名字,这样可能带来问题。