오라클(3)
-
오라클 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 -
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 -
not null constraint 추가/삭제
만약에 scott.emp 테이블의 sal 컬럼에 not null 제약조건을 추가하려면 alter table emp add constraint sal_not_null not null (sal) --> (X) alter table emp modify sal not null --> (O) 삭제는 user_constraints 테이블에서 not null에 대한 constraint_name을 확인 한 후 alter table emp drop constraint SYS_C0011235; 하면 된다.
2010.12.01