sql - ORACLe PROCEDURE - AUTHID allowed only in schema level -


while trying create table via procedure, facing error

error(73,9): pls-00157: authid allowed on schema-level programs

procedure bckup  authid current_user statusmsg varchar2(400);  begin     --backup records     execute immediate 'create table schemaname.tabname select pgm.* xyz pgm, ijk prf prf.col1=pgm.col1 , prf.id in(select id tab2)';     commit;  exception when others     statusmsg :='sql errror code ' || sqlcode|| ' -error- ' ||sqlerrm;     dbms_output.put_line('error : ' || statusmsg); end bckup; 

your procedure seems part of package. in package, can set invoker rights (authid current_user) @ package level. cannot set each individual procedure.

either move invoker rights package level:

create or replace package pkg authid current_user      procedure bckup;      -- more types, procedures , functions  end pkg;   create or replace package body pkg      procedure bckup       statusmsg varchar2(400);      begin         --backup records         execute immediate 'create table schemaname.tabname select pgm.* xyz pgm, ijk prf prf.col1=pgm.col1 , prf.id in(select id tab2)';         commit;      exception when others         statusmsg :='sql errror code ' || sqlcode|| ' -error- ' ||sqlerrm;         dbms_output.put_line('error : ' || statusmsg);     end bckup;  end pkg; 

or create global procedure (i.e. @ schema level , not @ package level):

create or replace procedure bckup  authid current_user statusmsg varchar2(400);  begin     --backup records     execute immediate 'create table schemaname.tabname select pgm.* xyz pgm, ijk prf prf.col1=pgm.col1 , prf.id in(select id tab2)';     commit;  exception when others     statusmsg :='sql errror code ' || sqlcode|| ' -error- ' ||sqlerrm;     dbms_output.put_line('error : ' || statusmsg); end bckup; 

Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -