function get_ybdatabydayandjgbm(
ijgbm varchar2, --机构编码
iday varchar2, --日期
icolumname varchar2 --列名称
) return number as icolumvalue NUMBER;
v_sql varchar2(5000);
begin
v_sql:='select '|| icolumname || 'into icolumvalue from Z_GBJX_YXRZ_MAIN t where t.dwbm = '''|| ijgbm ||''' and to_char(t.zbjssj1,''yyyy-mm-dd'') =syc.get_day('|| iday||') ' ;
DBMS_OUTPUT.PUT_LINE( v_SQL);
return icolumvalue;
end;为什么没有返回值?应该有返回值的啊? 请高手指点
ijgbm varchar2, --机构编码
iday varchar2, --日期
icolumname varchar2 --列名称
) return number as icolumvalue NUMBER;
v_sql varchar2(5000);
begin
v_sql:='select '|| icolumname || 'into icolumvalue from Z_GBJX_YXRZ_MAIN t where t.dwbm = '''|| ijgbm ||''' and to_char(t.zbjssj1,''yyyy-mm-dd'') =syc.get_day('|| iday||') ' ;
DBMS_OUTPUT.PUT_LINE( v_SQL);
return icolumvalue;
end;为什么没有返回值?应该有返回值的啊? 请高手指点
也没有给icolumvalue赋值,怎么会有返回值?
FUNCTION get_ybdatabydayandjgbm(ijgbm VARCHAR2, --机构编码
iday VARCHAR2, --日期
icolumname VARCHAR2 --列名称
) RETURN NUMBER AS
icolumvalue NUMBER;
v_sql VARCHAR2(5000);
BEGIN
v_sql := 'select ' || icolumname ||
' from Z_GBJX_YXRZ_MAIN t where t.dwbm = ''' ||
ijgbm ||
''' and to_char(t.zbjssj1,''yyyy-mm-dd'') =syc.get_day(' || iday || ') ';
--动态执行
EXECUTE IMMEDIATE v_sql
INTO icolumvalue;
DBMS_OUTPUT.PUT_LINE(v_SQL);
RETURN icolumvalue;
END;
/
DECLARE
res NUMBER:=0 --用来保存返回值班
BEGIN
res;=get_ybdatabydayandjgbm(参数); --表达式得到返回值
dbms_output.put_line(res); --输出结果
END
tangren
(老兵新手)