본문 바로가기

728x90

Programming/Oracle

(4)
KILL SESSION SELECT SW.SID SID , S.SERIAL# SERIAL , SUBSTR(RAWTOHEX(SW.P1),1,30) HANDLE , SUBSTR(RAWTOHEX(SW.P2),1,30) PIN_ADDR FROM V$SESSION_WAIT SW INNER JOIN V$SESSION S ON SW.SID = S.SID WHERE SW.WAIT_TIME=0 AND SW.EVENT LIKE 'library cache pin%' ; SELECT VSS.STATUS , VSS.SID , VSS.SERIAL# , VSS.USERNAME , VSS.OSUSER , VSA.SQL_TEXT , 'ALTER SYSTEM KILL SESSION ''' || VSS.SID || ',' || VSS.SERIAL# || '''..
테이블 정보 조회 1. 테이블 정보 조회 SELECT ACC.TABLE_NAME , ATC.COMMENTS , ACC.COLUMN_NAME , SUBSTR(REPLACE(INITCAP('z'||ACC.COLUMN_NAME), '_', ''), 2) COLUMN_NAME_CAMEL -- MY_COL -> myCol , ACC.COMMENTS || NVL2(ACC2.POSITION, '(' || DECODE(AC.CONSTRAINT_TYPE, 'P', 'PK', AC.CONSTRAINT_TYPE) || ACC2.POSITION || ')',NULL) COMMENTS , ATC2.DATA_TYPE , NVL2(ATC2.DATA_PRECISION, ATC2.DATA_PRECISION || ',' || ATC2.DATA_SCALE..
Merge MERGE INTO TARGET_TABLE --update 또는 insert할 table USING SOURCE_DATA --활용할 data로 table 또는 subquery로 정의할 수 있음 --SOURCE_DATA를 주체로 TARGET_TABLE를 inner join한다고 생각하면 됨 ON ( TARGET_TABLE.COL1 = SOURCE_DATA.COL1 AND TARGET_TABLE.COL2 = SOURCE_DATA.COL2) --inner join이 된 경우 UPDATE WHEN MATCEHED THEN UPDATE SET TARGET_TABLE.COL3 = SOURCE_DATA.COL3 , TARGET_TABLE.COL4 = SOURCE_DATA.COL4 [WHERE ..] [DELETE W..
Cursor 사용 방법 3가지 1.커서의 내용을 미리 정의 %ROWTYPE: 테이블의 행을 나타내는 레코드 타입 DECLARE TYPE MY_TYPE IS RECORD( NUM NUMBER, NAME VARCHAR2(12) ); MY_REC MY_TYPE; CURSOR MY_CUR IS SELECT 1 NUM, '홍길동' NAME FROM DUAL UNION ALL SELECT 2 NUM, '신데렐라' NAME FROM DUAL; BEGIN OPEN MY_CUR; LOOP FETCH MY_CUR INTO MY_REC; EXIT WHEN MY_CUR%NOTFOUND; DBMS_OUTPUT.PUT_LINE(MY_REC.NUM || '_' || MY_REC.NAME); END LOOP; CLOSE MY_CUR; END; DECLARE MY..

728x90