oracle - Error while wrappin PLSQL procedure please help me -
i facing error while wrapping plsql procedure. below code , error
actual function:
create or replace function column_job_salary_restriction( v_schema in varchar2, v_object in varchar2 ) return varchar2 v_sql varchar2(100); begin if lower( sys_context( 'userenv', 'session_user') ) = 'user2' v_sql := '0 = 1'; end if; return v_sql; end;
/
wrapping code:
declare input dbms_sql.varchar2s; output dbms_sql.varchar2s; begin input(1) := 'create or replace function column_job_salary_restriction( v_schema in varchar2, v_object in varchar2) return varchar2 is'; input(2) := 'v_sql varchar2(100) := null;'; input(3) := 'begin'; input(4) := 'if lower(sys_context("userenv","session_user")) = "user2" then'; input(5) := 'v_sql := '0 = 1';'; input(6) := 'end if;'; input(7) := 'return v_sql'; input(8) 'end;'; sys.dbms_ddl.create_wrapped(ddl => input, lb => 1, ub => input.count); end;
/
error:
error @ line 9: ora-06550: line 9, column 35: pls-00103: encountered symbol "0" when expecting 1 of following: * & = - + ; < / > @ in mod remainder not rem <an exponent (**)> <> or != or ~= >= <= <> , or like2 like4 likec between || multiset member submultiset
after executing exec column_job_salary_restriction
error @ line 1: ora-06550: line 1, column 7: pls-00306: wrong number or types of arguments in call 'column_job_salary_restriction' ora-06550: line 1, column 7: pl/sql: statement ignored
please me new plsql.
about pls-00103:
input(5) := 'v_sql := '0 = 1';';
should be:
input(5) := 'v_sql := ''0 = 1'';';
the double-quote 1 way escape quote inside string.
about pls-00306:
declare v_ret varchar2(100); begin v_ret := column_job_salary_restriction('foo', 'bar'); end; /
it function have bind return value variable , have give values input parameters.
Comments
Post a Comment