-- Lock 확인
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';
   
-- Lock 해제   
ALTER SYSTEM KILL SESSION 'SID, SERIAL#';

-- 전체검색해서 KILL STATEMENT 생성
SELECT C.OBJECT_NAME, 'ALTER SYSTEM KILL SESSION ''' || 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';

Posted by 좀모씨

댓글을 달아 주세요

  1. Favicon of http://www.kkangtong.net BlogIcon +깡통+ 2010.08.10 11:25 신고  댓글주소  수정/삭제  댓글쓰기

    좀삼은 트윗만 하시는듯.

  2. Favicon of http://nojongh.tistory.com BlogIcon 노종현 2010.08.21 09:22 신고  댓글주소  수정/삭제  댓글쓰기

    오옹 오옹.. 생일이시군요.. 축하드려요 ^-^)/
    아침부터 남자 목소리로 생일축하한단 말 들으시면
    기분나빠 하실까봐 여기다가 한마디 남겨요 ㅋㅋㅋ
    오늘도 즐거운 하루... 맛난 술 드셔요 ' ㅁ')/

  3. Favicon of http://babuluna.tistory.com BlogIcon 로엔그린 2010.08.25 10:35 신고  댓글주소  수정/삭제  댓글쓰기

    외계어다아아아아 ~

  4. cj곰돌이 2011.04.21 16:24 신고  댓글주소  수정/삭제  댓글쓰기

    좀비님 안녕하세요~ㅎ 저 기억하실지는 모르겠지만;;; 음;;;예전에 뮤클에 같이 많이 청취했던;; cj곰돌이 임돠;;;뮤클캐스트 홈페이지 들렸다가 이런곳이 있길래;;;들렸어요 ㅎㅎㅎ


컬럼명 검색
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)

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';

* 업무용으로 간혹 사용하게 되는 것들 중 외우고 다니기 귀찮은 거 나중에 또 검색하기 싫어서 지속적으로 업데이트할 예정임.

Posted by 좀모씨

댓글을 달아 주세요

  1. Favicon of http://nojongh.tistory.com BlogIcon 노종현 2009.08.23 02:37 신고  댓글주소  수정/삭제  댓글쓰기

    오오오 좀비횽님 두번째로 들려봅니다. 링크 걸어도 되겠습니까.?
    이번주말은 정말이지 너무 달리시는듯;;
    ㅎㅎ 건강을 생각해서 낮에는 물기 많은 음식으로 하셔요 ^-^)/

  2. Favicon of http://www.kkangtong.net BlogIcon +깡통+ 2009.08.29 17:48 신고  댓글주소  수정/삭제  댓글쓰기

    잉?? 좀삼~ 오라클 하세욤???
    우와 신기신기~~ 근데 작업 실수는 롤백인가 그런거 안되나요? ^^;;

    • Favicon of http://zommoc.tistory.com BlogIcon 좀모씨 2009.08.30 16:55 신고  댓글주소  수정/삭제

      프로시저에서 막 박아놓은 데이터인데,
      나중에 알고 보니까 로직이 캐겺진이었던거야.
      롤백은 commit 하기 전에나 되는거고...-_ㅠ


지금 개발하고 있는 DB 세션 유지 시간이 너무 짧아서 코딩하다가 쿼리 한 번 날리려면 다시 로그인 하는 완전히 귀찮은 상황이었는데, 또 우리의 구글신께서 알려주셨습니다.



사용하고 있는 버전은 9.7.2.5 입니다.
Session Browser를 열면 아래와 같이 Refresh Time을 설정할 수 있습니다. 



이제 Session Browser를 닫지 않고 Editor에서 쿼리 날리면 됩니다. 지긋지긋한 Session 끊김 문제가 이렇게 해결되었습니다. 

\(^o^)/


단, 다른 버전에서는 Session Browser가 DBA메뉴 아래에 있을 수도 있습니다.





Posted by 좀모씨

댓글을 달아 주세요


Oracle Database 10g에 추가된 새로운 기능을 이용하여 문자 데이터의 검색, 처리 능력을 극적으로 개선할 수 있습니다. 정규 표현식(regular expression)이라 불리는 이 기능은, 텍스트 패턴을 기술하기 위한 일종의 표기법으로, 이미 오래 전부터 다양한 프로그래밍 언어와 UNIX 유틸리티를 통해 지원되어 왔습니다.

....(후략)

Posted by 좀모씨

댓글을 달아 주세요


테이블이 FK로 묶여있을 때 상위테이블에서 데이터를 삭제하려고 하면 볼 수 있는 에러.
매칭된 컬럼을 보고 싶다면 아래의 쿼리를 날려주자.

SELECT PARENTCOLS.OWNER || '.' || PARENT.TABLE_NAME || '.' || PARENTCOLS.COLUMN_NAME || ' matches to ' || CHILDCOLS.OWNER || '.' || CHILD.TABLE_NAME || '.' || CHILDCOLS.COLUMN_NAME
  FROM ALL_CONS_COLUMNS CHILDCOLS, ALL_CONS_COLUMNS PARENTCOLS, ALL_CONSTRAINTS CHILD, ALL_CONSTRAINTS PARENT
 WHERE CHILDCOLS.OWNER = 'OWNER'
   AND CHILDCOLS.CONSTRAINT_NAME = 'SYS_CODE'
   AND CHILDCOLS.OWNER = CHILD.OWNER
   AND CHILDCOLS.CONSTRAINT_NAME = CHILD.CONSTRAINT_NAME
   AND CHILD.R_OWNER = PARENT.OWNER
   AND CHILD.R_CONSTRAINT_NAME = PARENT.CONSTRAINT_NAME
   AND PARENT.OWNER = PARENTCOLS.OWNER
   AND PARENT.CONSTRAINT_NAME = PARENTCOLS.CONSTRAINT_NAME
   AND CHILDCOLS.POSITION = PARENTCOLS.POSITION
ORDER BY CHILDCOLS.POSITION;



Posted by 좀모씨

댓글을 달아 주세요

이전버튼 1 이전버튼

블로그 이미지
Under Construction
좀모씨
Yesterday8
Today1
Total238,639

달력

 « |  » 2018.11
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

최근에 달린 댓글

최근에 받은 트랙백

글 보관함