日期:2014-05-17 浏览次数:20939 次
v_arg2 varchar2(200),
------解决方案--------------------
create or replace package a_package_name is TYPE CursorType is REF CURSOR; PROCEDURE get_procedure_name ( v_arg1 number, v_arg2 varchar2, refCur_return out CursorType, v_total_Count out varchar2 ); end a_package_name; / create or replace package body a_package_name as procedure get_procedure_name ( v_arg1 number, v_arg2 varchar2, refCur_return out CursorType, v_total_Count out varchar2 ) is numArg1 number := ''; strArg2 varchar2(200) := ''; strSql varchar2(200) := ''; strQuery varchar2(200) := ''; strCondition varchar2(200) := ' where 1=1 '; Begin if v_arg1 is not null and length(v_arg1)>0 then numArg1 := v_arg1; strCondition := ' '|| strCondition ||' and id = '|| numArg1 ||' '; end if; if v_arg2 is not null and length(v_arg2)>0 then strArg2 := v_arg2; strCondition := ' '|| strCondition ||' and value = '''|| strArg2 ||''' '; end if; strSql := 'selec * from test '|| strCondition ||' '; OPEN refCur_return FOR strSql; strQuery := 'select count(1) from test '|| strCondition ||' '; EXECUTE IMMEDIATE strQuery INTO v_total_Count; end get_procedure_name; end a_package_name; /
------解决方案--------------------
错误还蛮多哦,其实LZ自己根据报错信息都可以调出来呢
CREATE TABLE test(id number, value varchar2(200)); create or replace package a_package_name as PROCEDURE get_procedure_name ( v_arg1 number, v_arg2 VARCHAR2/*(200)*/, refCur_return out SYS_REFCURSOR , v_total_Count out varchar2 ); END; / create or replace package body a_package_name as procedure get_procedure_name ( v_arg1 number, v_arg2 varchar2, refCur_return out SYS_REFCURSOR, v_total_Count out varchar2 ) is numArg1 number := ''; strArg2 varchar2(200) := ''; strSql varchar2(200) := ''; strQuery varchar2(200) := ''; strCondition varchar2(200) := ' where 1=1 '; Begin if v_arg1 is not null and length(v_arg1)>0 then numArg1 := v_arg1; strCondition := ' '|| strCondition ||' and id = '|| numArg1 ||' '; end if; if v_arg2 is n