-- 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://candunix.tistory.com 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곰돌이 임돠;;;뮤클캐스트 홈페이지 들렸다가 이런곳이 있길래;;;들렸어요 ㅎㅎㅎ

ORA-00600: internal error code, arguments: [19004],

Cause :
normally this error argument would be found while querying table or view. Try the following solution:


Action :
1. login to oracle (using sqlplus at command line prompt):
   sqlplus
username/password@servicename

2. enter the following command
   sql>ANALYZE TABLE table_name delete statistics;

Note: Incase of view try apply the command with each table forming the view.


<출처 : http://ora-error-101.blogspot.com/2008/05/ora-00600.html>


ORA-00600: 내부 오류 코드

이자식을 만났습니다.
살살 검색을 해보니, CONNECT BY 문구를 사용할 때 오류가 날 수 있다고 하네요. 그 때 해결방법은.

/*+ NO_CONNECT_BY_COST_BASED */

라는 힌트를 사용하면 된답니다.

그런데 제 경우에는 이걸로도 해결이 안됐습니다.
[19004]가 붙은 오류일 때는 힌트로는 안되나 봅니다.
그리고 구글링을 하다가 저 위의 링크를 발견했지요.

번역이 별 필요없겠지만서도...

>>>

원인 : 보통 이 에라 인자는 테이블이나 뷰를 쿼링하는 동안 생길 수 있다. << 당연한 얘기 아님? - _-;
         따라해 보자.

할일 :
1. 오라클에 접속(cmd 창을 열어서 sqlplus사용하시고):
    sqlplus
username/password@servicename

2. 아래 명령을 따라해 보자.
    sql>
ANALYZE TABLE 테이블명 delete statistics;

참~ 쉽죠잉~

공책 : 뷰에서 에러가 났을 경우에는 뷰에 들어있는 각각의 테이블을 다 작업해주자.


덕분에 골머리 썩던 문제가 간단히 해결되었습니다.

Niramit Soonthawong 씨. 어디 사시는 누군지 모르겠으나. 쌩유베리감사~ (__)

아, 그리고 혹시나 운영하는 DB에다가 막 ANALYZE 때리지는 않으시겠죠?
테이블이 사용 중에 걸리면 열라 느려지거나 뻑 날 수도 있습니다-ㅁ-;
....라고 옆옆자리 과장님께서 그러셨음.



Posted by 좀모씨

댓글을 달아 주세요

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

    ;;; 역시 형님 티토는 오랜만에 와도 너무 어렵네요;; =ㅅ=

  2. 살구맛돼지 2010.06.16 17:16 신고  댓글주소  수정/삭제  댓글쓰기

    감사합니다...같은 에러였는데 덕분에 쉽게 해결했네요.
    실례가 아니라면 퍼가고 싶은데 퍼갈수가 없네요 -_ -;;;


컬럼명 검색
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://candunix.tistory.com 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 좀모씨

댓글을 달아 주세요

Oracle 10g 버전으로 업그레이드 후, 토드의 8.X 버전에서 'IN' is not a valid integer value 에러가 뜹니다.

다행히 해결법은 있었군요.

 

버그의 원인은 오라클 패치로 인해 ALL_ARGUMENTS가 냉텅이 되어서 그런겁니다.


1) SYS 로 로그인 합니다.
2) 아래의 view를 생성합니다. (ALL_ARGUMENTS_TOAD)

CREATE OR REPLACE VIEW ALL_ARGUMENTS_TOAD
(OWNER, OBJECT_NAME, PACKAGE_NAME, OBJECT_ID, OVERLOAD,
ARGUMENT_NAME, POSITION, SEQUENCE, DATA_LEVEL,
DATA_TYPE, DEFAULT_VALUE, DEFAULT_LENGTH, IN_OUT, DATA_LENGTH,
DATA_PRECISION, DATA_SCALE, RADIX, CHARACTER_SET_NAME, TYPE_OWNER,
TYPE_NAME, TYPE_SUBNAME, TYPE_LINK, PLS_TYPE, CHAR_LENGTH,
CHAR_USED, SUBPROGRAM_ID)
AS
SELECT
u.name, /* OWNER */
NVL(a.PROCEDURE$,o.name), /* OBJECT_NAME */
DECODE(a.PROCEDURE$,NULL,NULL, o.name), /* PACKAGE_NAME */
o.obj#, /* OBJECT_ID */
DECODE(a.overload#,0,NULL,a.overload#), /* OVERLOAD */
a.argument, /* ARGUMENT_NAME */
a.position#, /* POSITION */
a.SEQUENCE#, /* SEQUENCE */
a.LEVEL#, /* DATA_LEVEL */
DECODE(a.TYPE#, /* DATA_TYPE */
0, NULL,
1, DECODE(a.charsetform, 2, 'NVARCHAR2', 'VARCHAR2'),
2, DECODE(a.scale, -127, 'FLOAT', 'NUMBER'),
3, 'NATIVE INTEGER',
8, 'LONG',
9, DECODE(a.charsetform, 2, 'NCHAR VARYING', 'VARCHAR'),
11, 'ROWID',
12, 'DATE',
23, 'RAW',
24, 'LONG RAW',
29, 'BINARY_INTEGER',
69, 'ROWID',
96, DECODE(a.charsetform, 2, 'NCHAR', 'CHAR'),
100, 'BINARY_FLOAT',
101, 'BINARY_DOUBLE',
102, 'REF CURSOR',
104, 'UROWID',
105, 'MLSLABEL',
106, 'MLSLABEL',
110, 'REF',
111, 'REF',
112, DECODE(a.charsetform, 2, 'NCLOB', 'CLOB'),
113, 'BLOB', 114, 'BFILE', 115, 'CFILE',
121, 'OBJECT',
122, 'TABLE',
123, 'VARRAY',
178, 'TIME',
179, 'TIME WITH TIME ZONE',
180, 'TIMESTAMP',
181, 'TIMESTAMP WITH TIME ZONE',
231, 'TIMESTAMP WITH LOCAL TIME ZONE',
182, 'INTERVAL YEAR TO MONTH',
183, 'INTERVAL DAY TO SECOND',
250, 'PL/SQL RECORD',
251, 'PL/SQL TABLE',
252, 'PL/SQL BOOLEAN',
'UNDEFINED'),
DEFAULT$, /* DEFAULT_VALUE */
deflength, /* DEFAULT_LENGTH */
DECODE(in_out,NULL,'IN',1,'OUT',2,'IN/OUT','Undefined'), /* IN_OUT */
LENGTH, /* DATA_LENGTH */
PRECISION#, /* DATA_PRECISION */
DECODE(a.TYPE#, 2, scale, 1, NULL, 96, NULL, scale), /* DATA_SCALE */
radix, /* RADIX */
DECODE(a.charsetform, 1, 'CHAR_CS', /* CHARACTER_SET_NAME */
2, 'NCHAR_CS',
3, NLS_CHARSET_NAME(a.charsetid),
4, 'ARG:'||a.charsetid),
a.type_owner, /* TYPE_OWNER */
a.type_name, /* TYPE_NAME */
a.type_subname, /* TYPE_SUBNAME */
a.type_linkname, /* TYPE_LINK */
a.pls_type, /* PLS_TYPE */
DECODE(a.TYPE#, 1, a.scale, 96, a.scale, 0), /* CHAR_LENGTH */
DECODE(a.TYPE#,
1, DECODE(bitand(a.properties, 128), 128, 'C', 'B'),
96, DECODE(bitand(a.properties, 128), 128, 'C', 'B'), 0), /* CHAR_USED */
a.PROCEDURE# /* SUBPROGRAM ID */
FROM obj$ o,argument$ a,USER$ u
WHERE o.obj# = a.obj#
AND o.owner# = u.USER#
AND (owner# = USERENV('SCHEMAID')
OR EXISTS
(SELECT NULL FROM v$enabledprivs WHERE priv_number IN (-144,-141))
OR o.obj# IN (SELECT obj# FROM sys.objauth$ WHERE Grantee# IN
(SELECT kzsrorol FROM x$kzsro) AND privilege# = 12))
/



출처 : http://www.nabble.com/RE:-10-G-database---IN-is-not-a-valid-integer-value-p3405244.html

Posted by 좀모씨

댓글을 달아 주세요

  1. Favicon of http://candunix.tistory.com BlogIcon +깡통+ 2009.09.29 18:19 신고  댓글주소  수정/삭제  댓글쓰기

    워어 -_- 봐도 모르겠다요.
    근데 저게 한줄짜리 Create or Replace

이전버튼 1 이전버튼

블로그 이미지
Under Construction
좀모씨
Yesterday2
Today7
Total231,330

달력

 « |  » 2018.06
          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

최근에 달린 댓글

최근에 받은 트랙백

글 보관함