전체 글(55)
-
성요한 피정의 집에서 가족의 소중함을 깨달으며
사람은 늘 혼자이고 싶을 때가 있다. 아무리 결혼을 했어도, 자식이 생겼어도 혼자일고 싶을 때가 있다. 무슨 고민을 하든 무슨 짓을 하든 나는 혼자이고 싶다. 늘 익숙한 환경, 그리고 사람들을 벗어나 그들 ㄹ존재가 나에게 무었이었는지, 나는 그들에게 어떤 존재였을까를 그나마 3자 입장에서 느끼고 싶었다. 4월 3일 남들은 모두 출근한 시간에 차를 끌고 새로 생긴 춘천고속도로를 달렸다. 그리고 도착한 곳은 성공회에서 운영하는 성요한 피정의 집. 수사님들(로렌스, 스테판, 라파엘, 키릴)과 같이 공동 생활이 시작되었다. 강촌 IC 에서 빠져 나와서 곧바로 좌회전 하고 200 m 앞에서 다시 죄회전(좌방산 토종닭 간판을 보고 길을 따라가면 좌측에 보입니다. 건물은 크게 두 군데가 있습니다. 아래 사진도로길 옆..
2012.04.07 -
DBMS_LOB 패키지와 substr, getlength
DBMS_LOB 패키지는 LOB 데이터타입을 액세스하기 위한 만들어진 패키지이다. DBMS_LOG 패키지의 getlength() 함수는 해당 LOB 데이터타입의 크기를 나타낸다. substr은 CLOB 데이터타입의 경우 부분문자열을 돌려준다. substr을 사용할 때 조심해야 할 것은 일반 SQL에서 사용하는 문자열 함수 SUBSTR 과 인자의 순서가 다르다는 사실이다. 일반 substr(문자열, 시작점, 크기) DBMS_LOB.SUBSTR(CLOB, 크기, 시작점) 인자를 넣을 때 조심하삼!!!
2011.01.12 -
오라클 JDBC 에러 17006
자바에서 사용하는 오라클 SQLException은 두 가지가 있다. 하나는 오라클 데이터베이스에서 발생하는 Exception이 있고 또 하나는 오라클에서 제공하는 JDBC 드라이버에 발생하는 JDBC Exection이 있다. 오라클 JDBC 에러는 모두 17로 시작하는 5자리 숫자다. 개발자들이 생각하기에 SQLException은 SQL에서만 발생한다고 믿고 있어서 아무리 SQL을 분석해봐도 에러는 없다. 자바 프로그램에서 SQL만 따로 떼어 수행할 때는 잘 되지만 프로그램 내부에서 호출할 때 17006 에러가 발생해도 계속 SQL만 분석해 보는 헛수고를 하게 된다. import java.sql.*; public class TestOracle { /** * @param args */ public stat..
2011.01.06 -
인덱스 조인
SELECT TXN_ORG_CD ORG_CD, 0 TYPE_SUM, 0 TYPE1, 0 TYPE2, 0 TYPE3, 0 TYPE4, 0 TYPE5, 0 TYPE6, 0 TYPE7, 0 TYPE8, 0 TYPE9, 0 TYPE10 ,0 type11 ,COUNT(DISTINCT SID||SNO||BRQ_APPL_DT) type12 FROM 급여원부 WHERE fd_san_dt BETWEEN '20100101'||'000000' AND '20101130'||'235959' AND SAN_GBN_CD||'' = '2' AND EXC_GBN_CD||'' = '0' GROUP BY TXN_ORG_CD 급여원부_IND_04 인덱스는 fd_san_dt + txn_org_cd + san_gbn_cd + exc_gbn_c..
2010.12.28 -
튜닝 대상 SQL을 추출할 때 ORA-06502 발생
ORA-06502 에러는 변수에 담을 값이 변수의 크기보다 커서 발생하는 문제임 V$SQL에서 SQL_TEXT는 VARCHAR2(1000)으로, SQL_FULLTEXT는 CLOB으로 선언되어 있지만 요즈음 긴 SQL 문장은 1000 자 넘어가는 것은 우스워 보인다. SQL_TEXT 컬럼은 줄을 모두 붙여서 보여주기 때문에 성능튜닝 툴이 제공하는 포맷기능을 이용해야 한다. 반면 SQL_FULLTEXT 컬럼은 SQL_TEXT 컬럼보다 훨씬 큰 값을 담을 수 있지만 쿼리를 해보면 첫 문장에 해당하는 부분만 보여주기 때문에 처음 접한 사람은 SQL_TEXT 컬럼보다 크기가 작다고 느낄지 모르겠다. 하지만 CLOB은 CLOB 답게 읽을 수 있는 패키지를 제공하고 있다. DBMS_LOB.SUBSTR(SQL_FULL..
2010.12.22 -
With 문의 함정
With 문을 사용하는 모드는 두 가지가 존재한다. 하나는 materialize, 또하나는 inline 모드로 사용한다. With 이름 AS (SELECT /*+ inline */ ... ) With 이름 AS (SELECT /*+ materialize */ ... ) 1. materialize는 실체뷰처럼 사용하기 때문에 임시테이블을 create하고 drop하는 과정을 동반한다. 그러므로 OLTP 환경에서 특히나 자주 사용자가 사용하는 쿼리라면 사용하지 않기를 바란다. 사용자가 클릭하면 클라이언트는 DB한테 DDL문을 보내는 것과 같다. 사용자가 많고 빈번하면 임시테이블을 생성하고 DROP하는데 시간이 지체될 수 있기 때문이다. 2. inline 은 assembliy 개발시 공통적인 코드를 따로 분리하..
2010.12.20