Oracle 11g 데이터베이스에 대해 JDBC에서 PreparedStatement 쿼리를 수행하고 있는데 null 매개 변수를 전달한 결과가 "is null"을 정의하는 것과 다릅니다. 쿼리 자체. 예를 들어JDBC setNull()과 Oracle이 "null"인 경우 다른 결과가 발생합니다.
이 쿼리 :
String sql = "SELECT col1 FROM tbl WHERE col2 = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setNull(1, java.sql.Types.INTEGER);
ps.execute();
이 쿼리 다릅니다
String sql = "SELECT col1 FROM tbl WHERE col2 is null";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setNull(1, java.sql.Types.INTEGER);
ps.execute();
이 경우 왜 궁금, 내가 커버에 두 개의 별도의 SQL 문을 정의 피할 수있는 방법 "col2 = value"및 "col2 is null"의 경우입니다.
를 사용
NULL
값을 비교할 수 없기 때문에 하나 내가 [여기]를 자세히 대답 (HTTP보다이 문제를 해결하기 위해 청소기 방법을 찾을 수 없습니다 작동하지 않습니다 "WHERE col2 =? OR (col2 IS NULL AND? IS NULL)"일 수 있습니다. (예 : .com/questions/4215135/how-to- ". –