2008년 9월 30일 화요일

[에러와 해결] 데이터 정의에서는 바인드 변수를 사용할 수 없습니다

다음과 같은 오류가 발생하였다.

java.sql.SQLException: ORA-01027: 데이터 정의에서는 바인드 변수를 사용할 수 없습니다

 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
 at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
 at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
 at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:966)
 at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170)
 at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339)
 at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3423)
 at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)


해당 쿼리는 CREATE TABLE AS SELECT ...

테이블을 생성하는데 PreparedStatement를 사용했기 때문에 발생한 오류이다.

일반 Statement를 사용하여 오류 해결.

2008년 9월 4일 목요일

영문보다 한글이 먼저 나오게 정렬

정렬하면 한글보다 영문이 먼저 나온다.

예) SELECT * FROM tblMember ORDER BY MemberName

한글이 먼저 나오게 하려면?

다음과 같이 한다.

1. oracle

  SELECT * FROM tblMember ORDER BY CONVERT(MemberName, 'ISO2022-KR')