본문 바로가기
반응형

TechNical/Oracle45

거지같은 CLOB 이랑 안면 트기... VARCHAR2 타입은 최대 길이가 4000byte 로 정해져 있다. 데이터가 4000바이트가 넘어가면 에러를 뱉어 낸다. 그런데 데이터라는 것이 4000 바이트로 성이 찰 리가 없다. 그래서 생겨난것이 CLOB 타입 인데... 4000 바이트를 넘어가니까 어쩔 수 없이 CLOB을 쓰긴 써야 되는데 이놈이 여간 거지 같은게 아니다. CLOB은 다른 애들이랑 어울리길 거부한다. 당연한 것이.. 타입이 틀리니까 .. NUMVER랑 CHAR랑 틀린거.. 뭐 똑같은 거다.. 근데 문제는 .. 이 놈은 타입케스팅이 거지 같다는 거다. 내가 잘 몰라서 그러겠지만.. 안 되는거 같다.. TO_LOB... 개나 줘라 그래 ㅡㅡ NVL은 되면서 DECODE, COALESCE는 까칠하게 싫다고 한다.. WHERE 절에 들.. 2008. 12. 8.
한 테이블의 모든 컬럼 업데이트 칠 때 오늘은 엄청 어려운 걸 해 볼 작정이다. 하하하하하 TEST 테이블에 NAME 컬럼 값이 있다고 치자. 이 놈이 원래는 char 형 타입이라서 10자리로 고정이 되어 있었다. 근데 이 놈을 마이그레이션 하면서 varchar2 타입으로 바꿔서 넘겼다. 아니 글쎄 그랬더니 이 놈이 우측에 공백이 다 붙어 있는 것이 아닌가!! 그래서 조회를 할 때 name = search_value 이런 식으로 찾으면 매치가 안 되는 것 이다. 그도 그럴 것이 공백도 문자로 인식하니까 안 맞을 수 밖에.... 얄팍하게 like 'search_value%' 이런식으로 찾을 수 있겠지만.. 이건 아무리 봐도 허접하다. 데이터는 무조건 맞춰야 한다. 자.. 그럼 update문을 어떻게 작성할 것 인가?!?!?!?!?!? 쉬울 것 .. 2008. 11. 24.
연산시 NULL 값을 주의하자. 연산시 NULL 값을 주의하자. 더하기 연산은 모르겠다만.. 빼기 연산을 수행 하면 거지 같은 일이 발생한다. NULL - 2 => ?? 결과값이 어떻게 나올까나. 결과도 그냥 값이 없다. -2 가 박힐 거라고 생각하면 오산이다. 이럴때는 NVL 처리를 해서 0을 만들어 줘야 제대로 된 값이 나온다. 대게.. 두개의 테이블을 OUTER로 조인하면 이러한 상황이 발생하지 않을까나~ 이래저래 NULL은 귀찮은 녀석이다. 왠만하면 default 값을 넣어 주는게 좋지 않을까나~ Sample SQL ] SELECT AA + BB FROM (SELECT '' AS AA FROM DUAL) a , (SELECT '-2' AS BB FROM DUAL) b 2008. 11. 19.
쿼리 에디터 툴이 날려먹은 쿼리 복구하기 먼저.. 오라클에 해당하는 내용이다. 쿼리문을 커맨드창이나 메모장에서 작성하기는.... 흠좀무 다.. 그래서 쿼리 에디터 툴을 쓰기 마련이다. 오라클에서 제공하는 SQL Developer나 두꺼비를 쓰던지 귤을 쓰던지 쿼리를 작성을 하게 된다. 그러다가 느닷없이 재앙은 다가온다.. 어플리케이션이 갑자기 죽어 버린다. 저장도 안 했는데... 다행스럽게도 재 시작하면 이전 쿼리를 복구 시켜 준다거나 쿼리 히스토리가 기록되어 있어서 복구 시키면 된다. 하지만.. 때때로 이 놈이 복구가 안 되는 수가 있다. 이럴땐 진짜 의욕상실이다. 해서 에디터 프로그램에서 날려먹은 쿼리를 DB에서 찾아 오는 방법도 알아 둘 필요가 있다고 느꼈다. 어제 그랬으니까 -_- 실행환경은 ORACLE 10g 다. v$sqlarea나 .. 2008. 9. 25.
반응형