저는 JDBC를 처음 사용하고있어 왔습니다. 포럼의 다른 게시물은 JDBC가 Oracle PLSQL Boolean 유형을 지원하지 않음을 나타냅니다. 그것은 않습니다처럼 oracle jdbc documentation에서JDBC가 Oracle을 지원하지 않는 이유 부울 유형
보인다 : 정말 이상한 것을 발견
그러나 another section에 그것이 PL/SQL 저장 프로 시저 부울 매개 변수의 통과를 허용하지 않습니다 말한다.
설명서 자체가 모순되지 않습니까?
PL/SQL 프로 시저/함수에서 부울 값을 전달하거나 허용하지 않습니다. 그것은 다음과 같은 예외를 제공합니다 :
Exception occured in the database
Exception message: Invalid column type: 16
Database error code: 17004
java.sql.SQLException: Invalid column type: 16
at oracle.jdbc.driver.OracleStatement.getInternalType(OracleStatement.java:3963)
at oracle.jdbc.driver.OracleCallableStatement.registerOutParameterInternal(OracleCallableStatement.java:135)
at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:304)
at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:393)
at oracle.jdbc.driver.OracleCallableStatementWrapper.registerOutParameter(OracleCallableStatementWrapper.java:1579)
at com.HrManager.insertNewEmployee(HrManager.java:1300)
at com.HrManager.main(HrManager.java:1411)
JDBC Oracle 드라이버가 부울 유형을 지원하지 않는 이유를 이해하려고합니다. PL/SQL "Boolean"
이 null 값을 허용하고 Java의 원시 유형 "boolean"
이 그렇지 않기 때문입니까?
그러나 카운터는 Java의 래퍼 클래스 "Boolean"
이 null을 허용합니다. 이것은 PLSQL의 부울 유형에 매핑하는 데 사용할 수 있습니다. 어떤 사람은 이것에 대해 더 많은 것을 밝힐 수 있습니까?
[제안 할 선례가 있습니다.] (http://its-all-about-oracle.blogspot.com/2013/11/invalid-column-type-16.html) 정수형 대신에 부울이지만,이 오류를 얻기 위해 작성한 것을 보여주십시오. – Makoto
@Makato가 언급 한 경우 "hibernate.dialect"속성의 값을 "org.hibernate.dialect.OracleDialect"에서 "org.hibernate.dialect.Oracle9iDialect"로 변경합니다. – RBz