將本身的存儲過程授權給其他用戶使用(用戶名:USER_OHTER)
--存儲過程案例(清空表數據)
--存儲過程案例(清空表數據)
CREATE OR REPLACE PACKAGE USER_A.PKG_TRA_TAB_OPERATION IS
PROCEDURE P_TAB_TRUNCATE_A; -- 方法一
PROCEDURE P_TAB_TRUNCATE_B; -- 方法二
END PKG_TRA_TAB_OPERATION;
/
CREATE OR REPLACE PACKAGE BODY USER_A.PKG_TRA_TAB_OPERATION IS
PROCEDURE P_TAB_TRUNCATE_A IS
BEGIN
EXECUTE IMMEDIATE 'TRUNCATE TABLE T_TAB_A';
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001, 'TRUNCATE TABLE ERROR');
END P_TAB_TRUNCATE_A;
PROCEDURE P_TAB_TRUNCATE_B IS
BEGIN
EXECUTE IMMEDIATE 'TRUNCATE TABLE T_TAB_B';
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001, 'TRUNCATE TABLE ERROR');
END P_TAB_TRUNCATE_B;
END PKG_TRA_TAB_OPERATION;
/
給其他用授權(USER_OHTER):
grant execute on PKG_TRA_TAB_OPERATION to USER_OHTER;
其他用戶調用(USER_OHTER):
--========================== 表清空(謹慎操作)USER_OHTER 執行 =======================================
--TRUNCATE TABLE T_TAB_A
BEGIN
USER_A.PKG_TRA_TAB_OPERATION.P_TAB_TRUNCATE_A;
end;
--TRUNCATE TABLE T_TAB_B
BEGIN
USER_A.PKG_TRA_TAB_OPERATION.P_TAB_TRUNCATE_B;
end;