오라클 6

오라클 DB 성능 향상 엑셈 MaxGauge

Maxgauge 개발회사 엑셈 홈페이지 -> http://www.ex-em.com/ -> 엑셈에서 다양한 세미나 등을 하는데 성능 관련 및 OWI 등은 들으면 도움이 되실듯 함..^^ 제품 설명 자료 -> http://www.ex-em.com/web/support/support_databank1.php?dtype=1 -> 목록중에 [MaxGauge 교육자료 Ver3.1] 를 Down 받아서 참고 제품 매뉴얼 -> http://www.ex-em.com/web/support/support_databank1.php?dtype=1 -> 목록중에 [MaxGauge 3.1(Oracle) 매뉴얼 vol.1 / 2] 를 참고 오라클 백과사전 -> http://wiki.ex-em.com/index.php/ -> 엑셈에서..

오라클 DB 의 Lock 을 염두에 둔, 레코드 업데이트

하나 이상의 프로세스를 통하여 동일 레코드의 특정 칼럼 값(들)을 수정하는 경우, 어떤 것이 적용될까..? 순식간에 발생하더라도 마지막에 update 가 수행된 하나만 반영이 될터인데.. 그러면, 반영되기는 했지만 최종적으로는 적용되지 않은 쪽이 억울하지 않을까..? 해당 레코드가 여러번 수정되어도 마지막에 수정된 내용만 남게 되기도 하고.. 이를 방지하기 위해서, 검린 님이 2가지 방법을 기술하였는데.. 하나는, 칼럼(columnA)을 하나 추가해서 마지막에 수정한 일시(timestamp)를 가지게 하고, 동일 레코드를 읽을때 추가된 칼럼 columnA 값을 읽어서 가지고 있다가, update 문의 조건절에 최종 수정일시 columnA 를 조건으로 추가하면 된다는 것. A 와 B 가 언제든 해당 레코드..

여러줄 나오는 쿼리를 한줄로 줄일때 Clob 이 대상이라면 다른 방법을 찾아 봐야..

select title, content, isrtid from tableA ; 상기 결과가 다음과 같을때.. 이걸 한 줄로 고쳐보고 있을 거다. titleA contentA isrtIdA titleB contentB isrtIdA titleC contentC isrtIdA titleD contentD isrtIdA .. 그러면 당연히 isrtid 로 group by 를 하고, max 와 decode 를 사용할 것인데.. 그렇다면 쿼리가 다음과 같이 된다. select isrtid, max(decode(title, 'titleA', content)) content1, max(decode(title, 'titleB', content)) content2, max(decode(title, 'titleC', co..

chr(13) 이용해서 엔터 들어간 내용을 엑셀로 저장

chr(13) 과 chr(10) 에 대해서 왈가왈부 말이 많네요. 다들 옳은 이야기를 하는데 이걸 어디에 써 먹어야 하는지는 별로 없는 것같네요. 여기에서는, 엑셀에서 사용하는 방법을 간략하게 설명합니다. 만약 tableA 에 columnB 가 있는데, columnB 에 엔터 문자가 들어가 있는 것을 엑셀에 담을때 유용합니다. select columnB from tableA 라고 하면 엑셀에 담길 내용이 주욱 나오죠..? 그런데 여기에 이상한 문자가 찍힐 겁니다.. 음악에서 사용되는 8분 음표인 '♪' 이것이죠. 엑셀에서 이걸 없애려고 해도 쉽지 않지요. 이넘이 나오지 않게 하려면.. select replace(columnB,chr(13),'') from tableA 라고 하면 됩니다. chr(13) 대..

오라클 DB 쿼리문에 % 나 _ 문자 등의 escape 이스케이프 처리

아래와 같이 '_' 문자 자체는 오라클 DB 에서 하나의 문자를 대체하는 키워드이기 때문에, 이를 무시하고 쿼리가 되도록 하려면 해당 문장 뒤에 escape 을 기술 temp003 like '%____%' escape '_' 만약 데이타에 temp003 이 '3222____144' 라고 되어 있으면 쓰라는 야그. 그러면 % 문자가 들어간 필드값을 쿼리해 올 때는 어떻게 해야 할까..? escape'%%' ..? 이렇게 하면 대략 난감. 이럴때는 아래와 같이 한다. temp003 like '%\%%' escape '\' 프로시저에서 사용하거나, Transaction 안에서 활용하는 것이라면.. set escape on; 문을 먼저 실행하도록 해도 된다. 나중에 다시 off 하는 것은 잊지 마시고..

select .. from .. where .. connect by (prior) .. = (prior) .. start with ..

가계도를 하나의 DB 테이블에 담았다가 손쉽게 쿼리하여 가져올 수는 없을까..? 분류체계를 정해서 한눈에 보여질 수 있도록 할 수 있지 않을까..? 등등에 대해서 목마름을 씻어주는 쿼리 문법. 일단 오라클에는 있고, MySQL 에는 비슷한 다른 방식이 있다는데.. DB2 나 Sybase 등에는 어떤 것들이 있을까.. 이건 숙제다. connect by 를 이용하려면 DB 모델링에서 하나의 테이블 안에 트리 구조를 위한 조치를 해야 하는데, 자신의 코드와 트리 구조상 상위 위치의 코드 2개를 가지고 있어야 한다. 이를테면, 아래에 예를든 것에서, w2_category 테이블에는.. 자신의 코드인 seq_category 와 상위 코드인 bef_category 를 이용했다. select * from w2_cat..