- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在 JDBC 中针对 Oracle 11g 数据库执行 PreparedStatement 查询,发现传递 null 参数的结果与在查询本身中定义“is 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”两种情况。
最佳答案
这与 Java 无关,真的,这就是 NULL 在 Oracle 中的工作方式。
与任何事物(甚至与 NULL)相比,NULL 始终为假,您必须使用 IS NULL。
这也不会返回任何行:
SELECT col1 FROM tbl WHERE col2 = NULL
甚至
SELECT col1 FROM tbl WHERE NULL = NULL
关于java - JDBC setNull() 与 Oracle "is null"产生不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10990749/
PreparedStatement接口(interface)中的setNull()方法有什么用?我查看了this发布。 它说:如果没有 setNull(..) 方法,就无法为 Java 原语设置 nu
Java PreparedStatement 提供了显式设置 Null 值的可能性。这种可能性是: prepStmt.setNull(parameterIndex, Types.VARCHAR); 此
请有人告诉我如何在 Symfony 2 中设置 onDelete: SetNull ?这是示例: oneToOne: Company: targetEntity: Compan
我的数据库中有一个非常大的表。其中一些字段可能为空。 我只想避免使用: PreparedStatement.setNull(index, Type.X) 喜欢: if(obj.getSomaData(
我将 Postgresql 与 HikariCP 一起使用,我的查询类似于 SELECT * FROM my_table WHERE int_val = ? ... 现在,我想为我的变量设置 NULL
这个问题已经有答案了: Why does PreparedStatement.setNull requires sqlType? (3 个回答) 已关闭 1 年前。 我有一个带有 Mysql DB 的
我用一个表做了一个实验,该表有一个带有空值的 VARCHAR 列,试图获取具有特定列 NULL 的行数。我使用了三种形式: 表格A SELECT COUNT(*) FROM buyers WHERE
我正在使用 EF Core 1.1.0,并且级联行为存在严重问题。 我有一个名为 Land 的模型,如下所示: public class Land { public long Id { get
当 MySQL 列类型为 TEXT 时,我应该使用什么 java.sql.Types 在准备好的语句中设置 NULL?我在这里没有看到类型文本:http://docs.oracle.com/javas
根据 PreparedStatement.setNull 的 java 文档:“注意:您必须指定参数的 SQL 类型”。方法需要列的SQL类型是什么原因? 我注意到传递 java.sql.Types.
问题#1 谁能告诉我,当 sPhoneExt 使用以下代码时,我将获得什么好处?是 null ? if (sPhoneExt == null || sPhoneExt.trim().equals(""
我正在我的 JAVA 应用程序和 PostgreSQL 数据库中进行过滤搜索。 我有以下用于选择航类数据的 PostgreSQL 查询: String query = "SELECT flight.
我正在 JDBC 中针对 Oracle 11g 数据库执行 PreparedStatement 查询,发现传递 null 参数的结果与在查询本身中定义“is null”不同。 例如,这个查询: Str
我想根据我得到的类型在运行时设置空值 这是我的代码 @SuppressWarnings("rawtypes") // input can be Intger,Date, BigInt etc whic
我正在尝试将 int 值上传到我的数据库表,该值可能为空。我有以下代码: ps = connection.prepareStatement("INSERT INTO table1 (COL1) VAL
下面的语句有什么区别。 PreparedStatement.setNull(1, java.sql.Types.NULL); 和 PreparedStatement.setNull(1, java.s
对于可选关系(当外键可以接受 Null 时),一个新的 ClientSetNull自 EF Core 2.0 起引入了行为 默认 删除行为的选项 DeleteBehavior.ClientSetNul
我正在尝试使用 Java 调用存储过程。 我已经查看了类似的错误,并已尝试复制解决方案,但仍然有错误。 java.sql.SQLException:调用中的参数无效:对用户定义类型和 REF 类型使用
我是一名优秀的程序员,十分优秀!