태그 보관물: 오라클

오라클 데이타 확인시에 공백이 있어서 TRIM(RTRIM, LTRIM)을 통해서 공백을 제거하고 검색을 해도 되지 않는다. 이때 해결하는 방법!!!

오라클 데이타 확인시에 공백이 있어서 TRIM(RTRIM, LTRIM)을 통해서 공백을 제거하고 검색을 해도 되지 않는다. 이때 해결하는 방법!!!

문제의 원인은 마지막 글자가 깨진 특수 문자일 때 공백이 제거되지 않는다.
확인 방법은 해당 결과를 노트패드로 복사해서 해당 공백이 어떤 타입인지(빈칸, 탭, 엔터…)를 확인하고 해당되는 특수 문자를 CHR()을 통해서 제거한다.

SELECT REPLACE(COLUMN_NAME, CHR(9),'') FROM TABLE_NAME

자주 오류가 발생하는 캐릭터 문자 코드

캐랙터 코드 특수문자
CHR(38) &
CHR(9) 탭문자
CHR(13) 라인피드
CHR(10) 캐리지리턴

오라클 메소드

  • ASCII() : 캐릭터를 아스키 코드로 변환
  • CHR() : 아스키 코드를 캐릭터 코드로 변환

Oracle Lock Table 처리방법

Lock Table 찾기

SELECT T1.OBJECT_NAME, 
	   DECODE(T2.LOCKED_MODE,2,'ROW SHARE',3,'ROW EXCLUSIVE',4,'SHARE',5,'SHARE ROW EXCLUSIVE','OTHERS') AS LOCK_MODE
FROM DBA_OBJECTS T1, V$LOCKED_OBJECT T2
WHERE T1.OBJECT_ID = T2.OBJECT_ID;

Lock Table을 발생시킨 세션 ID 찾기

SELECT A.SESSION_ID AS SESSION_ID, 
	   B.SERIAL# AS SERIAL_NO,
       A.OS_USER_NAME AS OS_USER_NAME,
       A.ORACLE_USERNAME AS ORACEL_USERNAME,
       B.STATUS AS STATUS
FROM V$LOCKED_OBJECT A, V$SESSION B
WHERE A.SESSION_ID = B.SID;

해당되는 세션 죽이기

ALTER SYSTEM KILL SESSION 'SESSION_ID,SERIAL_NO';