2010. 3. 19. 19:30 슬기로운생활/Database
Oracle 쿼리 Tip
컬럼명 검색
select table_name, column_name from all_tab_columns where column_name like '%컬럼명%';
Update for Select
- A 테이블의 chg_id 값이 주민번호로 들어가야 하는데 로직상 실수로 인해 Email 주소의 ID 부분으로 입력되었다.
- 이럴때 사용자 정보 B테이블을 읽어서 주민번호로 A테이블을 update 하고자 한다.
Update A set chg_id =
(Select jumin from B where substr(email, 1, instr(email, '@', 1) -1) = A.chg_id);
순위매기기
1.RANK
RANK() OVER (
[PARTITION BY <value expression1> [, ...]]
ORDER BY <value expression2> [collate clause] [ASC|DESC]
[NULLS FIRST|NULLS LAST] [, ...] )
*동순위일때 건너뜀(1,1,1,3,3,5)
순위매기기
1.RANK
RANK() OVER (
[PARTITION BY <value expression1> [, ...]]
ORDER BY <value expression2> [collate clause] [ASC|DESC]
[NULLS FIRST|NULLS LAST] [, ...] )
*동순위일때 건너뜀(1,1,1,3,3,5)
2.DENSE_RANK
DENSE_RANK() OVER (
[PARTITION BY <value expression1> [, ...]]
ORDER BY <value expression2> [collate clause] [ASC|DESC]
[NULLS FIRST|NULLS LAST] [, ...] )
*동순위일때 연속됨(1,1,1,2,2,3)
DATA : A,A,A,B,B,C
테이블 LOCK 확인 및 해제
SELECT A.SID
, A.SERIAL#
, A.USERNAME
, A.PROCESS
, B.OBJECT_NAME
, DECODE (C.LMODE, 2, 'RS', 3, 'RX', 4, 'S', 5, 'SRX', 8, 'X', 'NO') TABLE_LOCK
, DECODE (A.COMMAND, 2, 'INSERT', 3, 'SELECT', 6, 'UPDATE', 7, 'DELETE', 12, 'DROP', 6, 'LOCK', 'UNKNOWN') SQL
, DECODE (A.LOCKWAIT, NULL, 'NO WAIT', 'WAIT') STATUS
FROM V$SESSION A, DBA_OBJECTS B, V$LOCK C
WHERE A.SID = C.SID
AND B.OBJECT_ID = C.ID1
AND C.TYPE = 'TM'
AND A.USERNAME = 'USER_NAME';
SELECT SUBSTR(C.OBJECT_NAME,1,20),A.SID,A.SERIAL#
FROM V$SESSION A, V$LOCK B, DBA_OBJECTS C
WHERE A.SID = B.SID
AND B.ID1 = C.OBJECT_ID
AND B.TYPE='TM';
ALTER SYSTEM KILL SESSION 'SID, SERIAL';
* 업무용으로 간혹 사용하게 되는 것들 중 외우고 다니기 귀찮은 거 나중에 또 검색하기 싫어서 지속적으로 업데이트할 예정임.
'슬기로운생활 > Database' 카테고리의 다른 글
Oracle Lock 확인/해제 (4) | 2010.06.23 |
---|---|
ORA-00600: [19004] (4) | 2010.03.26 |
TOAD(토드) for Oracle - 접속 유지하기 (0) | 2010.02.05 |
Oracle Regular Expression(정규표현식) (0) | 2009.12.14 |
ORA-02292: 무결성 제약조건(OWNER.SYS_CODE)이 위배되었습니다- 자식 레코드가 발견되었습니다 (0) | 2009.12.03 |