RATE THIS ANSWER
0
Click to Vote:
0
0
This code has more than one error:
- You can't define AUTHID for procedures or functions that you declare and define inside a PL/SQL package. In this case the AUTHID is defined for the whole package.
- Procedures inside a package should not be defined with the CREATE OR REPLACE command.
- In your package spec you defined a procedure 'proc_add_new_
csdeveloper', but in the body, its name is 'proc_add_new_developer'
Try this modified version:
CREATE OR REPLACE PACKAGE pack_add_users AUTHID CURRENT_USER IS
PROCEDURE proc_add_new_csdba;
PROCEDURE proc_add_new_csdeveloper;
END pack_add_users;
/
CREATE OR REPLACE PACKAGE BODY pack_add_users IS
PROCEDURE proc_add_new_csdba IS
begin
dbms_output.enable(20000);
FOR VAR2 in 4..10 LOOP
execute immediate 'create user csdba'||to_char (VAR2)||' identified by csdba'||to_char (VAR2);
execute immediate 'grant create session to csdba'||to_char (VAR2);
execute immediate 'grant cs_reps_role to csdba'||to_char (VAR2);
execute immediate 'grant cs_admin_role to csdba'||to_char (VAR2);
execute immediate 'grant cs_sales_role to csdba'||to_char (VAR2);
execute immediate 'grant cs_clerk_role to csdba'||to_char (VAR2);
execute immediate 'grant cs_manager_role to csdba'||to_char (VAR2);
execute immediate 'grant cs_programmer_role to csdba'||to_char (VAR2);
execute immediate 'grant cs_dba_role to csdba'||to_char (VAR2);
END LOOP;
end proc_add_new_csdba;
procedure proc_add_new_csdeveloper as
begin
dbms_output.enable(20000);
FOR VAR2 in 4..10 LOOP
execute immediate 'create user csdeveloper'||to_char (VAR2)||' identified by csdeveloper'||to_char (VAR2);
execute immediate 'grant create session to csdeveloper'||to_char (VAR2);
execute immediate 'grant cs_reps_role to csdeveloper'||to_char (VAR2);
execute immediate 'grant cs_admin_role to csdeveloper'||to_char (VAR2);
execute immediate 'grant cs_sales_role to csdeveloper'||to_char (VAR2);
execute immediate 'grant cs_clerk_role to csdeveloper'||to_char (VAR2);
execute immediate 'grant cs_manager_role to csdeveloper'||to_char (VAR2);
execute immediate 'grant cs_programmer_role to csdeveloper'||to_char (VAR2);
END LOOP;
end proc_add_new_csdeveloper;
END pack_add_users;
/
show errors;
Last Answered:
Mar 16 2009 2:02 PM GMT by Carlosdl 
29795 pts.