我正在使用 ScalikeJDBC 库从 Scala 使用 JDBC。
让我们做一个简单的查询:UPDATE "test_table"SET "test"= 1234 WHERE ("asdad"is null)
如果我将此查询直接传递给 psql
或通过 JDBC 原始执行它,一切正常。但是,如果我尝试将 null
作为参数传递,则会出现以下错误:org.postgresql.util.PSQLException: ERROR: syntax error at or near "$1"
我像这样传递 null
值:
session.update("""UPDATE "test_table" SET "test" = 1234 WHERE ("asdad" is ?)""", null)
?
占位符被 ScalikeJDBC 库自动转换为 $1
。执行的查询显示在 Scala 控制台中:
UPDATE "test_table" SET "test" = 1234 WHERE ("asdad" is null)
谢谢!
最佳答案
是
之后不允许有参数。您必须将 IS NULL
或 IS NOT NULL
编写为固定表达式。
允许的是 = $1
,然后将此占位符设置为 null
,但这不会产生您期望的与 NULL< 比较的结果
总是未知
。
查看相关问题:
关于java - IS NULL 条件下的 JDBC 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24934243/