다른 유저가 truncate할때(프로시저)
다른 유저에게 테이블 tuuncate 권한 부여하고자 할때
아래 프로시저를 생성하여 프로시져를 실행권한을 주면 다른 유저도 truncate를 할 수있다.
- 일반 table_truncate(다른 유저가 truncate할때)
CREATE OR REPLACE PROCEDURE SCOTT.TABLE_TRUNCATE(tname in varchar2)
as
begin
execute immediate 'truncate table SCOTT.'||upper(tname);
end;
/
GRANT EXECUTE ON SCOTT.TABLE_TRUNCATE TO TRIGER;
GRANT EXECUTE ON SCOTT.TABLE_TRUNCATE TO HR;
기본적으로 다른 유저가 해당 유저 테이블을 truncate 할수없을때 프로시져로 처리
- patition table_truncate(다른 유저가 truncate할때)
CREATE OR REPLACE PROCEDURE SCOTT.TRUNCATE_PARTITION(P_TNAME in varchar2,P_PNAME IN VARCHAR2)
AS
v_tname varchar2(40);
v_pttn_nm varchar2(40);
BEGIN
execute immediate 'ALTER TABLE SCOTT.'||UPPER(P_TNAME)||' TRUNCATE PARTITION '||UPPER(P_PNAME);
end;
/
GRANT EXECUTE ON SCOTT.TABLE_TRUNCATE TO TRIGER;
GRANT EXECUTE ON SCOTT.TABLE_TRUNCATE TO HR;
기본적으로 다른 유저가 해당 유저 테이블을 truncate 할수없을때 프로시져로 처리
- subpatition table_truncate(다른 유저가 truncate할때)
CREATE OR REPLACE PROCEDURE SCOTT.TRUNCATE_SUBPARTITION(P_TNAME in varchar2,P_PNAME IN VARCHAR2)
AS
v_tname varchar2(40);
v_pttn_nm varchar2(40);
BEGIN
execute immediate 'ALTER TABLE SCOTT.'||UPPER(P_TNAME)||' TRUNCATE SUBPARTITION '||UPPER(P_PNAME);
end;
/
GRANT EXECUTE ON SCOTT.TABLE_TRUNCATE TO TRIGER;
GRANT EXECUTE ON SCOTT.TABLE_TRUNCATE TO HR;
기본적으로 다른 유저가 해당 유저 테이블을 truncate 할수없을때 프로시져로 처리