create or replace procedure p_dny_sql(i_job varchar2,o_res OUT varchar2)
as
v_str varchar2(2000);
v_name varchar2(32);
v_job varchar2(32);
ERRCODE number;
ERRMSG varchar2(200);
begin
v_str := 'select tname from t_cur_test where tid >15 ';
v_job := 'a';
if (i_job is not null or i_job != '') then
v_str := v_str ||' and tjob= '''||v_job||'''';
end if;
/*if i_job is not null then
v_str := v_str ||' and tjob= '''||to_char(i_job)||'''';
end if;*/
dbms_output.put_line(v_str);
execute immediate v_str into v_name;
commit;
o_res := v_name;
/*if(company_id != '') then
sqlstr := sqlstr + ' and t.company_id = '||company_id||'';
end if;*/
exception
WHEN OTHERS THEN
ERRCODE := SQLCODE;
ERRMSG := SUBSTR(SQLERRM, 1, 200);
dbms_output.put_line(ERRCODE||ERRMSG);
end;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12961536/viewspace-1061413/
,如需转载,请注明出处,否则将追究法律责任。