본문 바로가기

오라클DBMS

[오라클/11G] Trigger 사용시 ORA-04091 Table is Mutating 발생증상 :TRIGGER(트리거) 사용시 ORA-04091 Table is Mutating 오류 발생 발생원인 : TRIGGER의 대상이 되는 테이블에 대해 select , update ,insert, delete 발생시 문제가 될 수 있어 (길게 쓰려니.. 귀찮아..) 발생함each row 사용시 발생함. 해결방법 : 임시테이블,PL/SQL테이블등과 COMPOUND TRIGGER를 사용하는 방법이 있음 COMPOUND TRIGGER는 문장내에서 each row 와 statement 를 복합적으로 사용가능하기 때문에 ORA-04091 를 발생시키는 each row와 new, old 데이터를 사용할 수 없는 statemnet 의 문제점을 상호보완이 가능함 create or replace trigger TR.. 더보기
[오라클] HWM 줄이기 SHRINK SPACE alter table enable row movement; -- ALTER TABLE SHRINK SPACE;orALTER TABEL MODIFY PARTITION SHIRNK SPACE; 더보기
[OSX/SQLDeveloper] 메뉴 영어로 바꾸기 한글로 나오는 오라클 관련 명령어가 어색하기도 하지만, 타인과 소통이 어려우니 영어로 바꾸자. /Applications/SQLDeveloper.app/Contents/Resources/sqldeveloper/sqldeveloper/bin/ 위경로에 있는 sqldeveloper.conf 에 추가하면 된다. AddVMOption -Duser.language=enAddVMOption -Duser.country=US 더보기
[오라클] LOB TABLESPACE MOVE 쿼리 생성 select 'alter table OWNER.' || TABLE_NAME || ' move lob(' || PATH# || ') store as (tablespace MOVETS);'from (select table_name,substr(max(sys_connect_by_path(column_name,',')),2) as path#from (select table_name,column_name,row_number() over(partition by table_name order by column_name) as ordfrom DBA_TAB_COLUMNSwhere TABLE_NAME in (select table_namefrom DBA_TABLESwhere tablespace_name = 'ORIGTS'.. 더보기
DROP TEMPORARY TABLESPACE 임시테이블스페이스 삭제불가시 SELECT 'alter system kill session ''' ||a.sid ||',' ||a.serial# ||''' immediate;'from V$SESSION a, V$SORT_USAGE B, V$PROCESS C, V$PARAMETER Dwhere D.name = 'db_block_size'and a.SADDR = B.SESSION_ADDRand a.PADDR = C.ADDRand B.tablespace='TEMP_T'order by B.tablespace, B.SEGFILE#, B.SEGBLK#, B.blocks; temp 테이블 스페이스를 사용중인 프로세스를 잡아내서 kill 하기 출처 : http://www.dba-oracle.com/t_ora_25152_tempfile_cannot_.. 더보기