postgresql – 转义hstore包含JDBC Prepared语句中的运算符
发布时间:2020-12-13 16:17:47 所属栏目:百科 来源:网络整理
导读:我正在使用PostgreSQL 9.1.4与hstore和 PostgreSQL JDBC驱动程序(9.1-901.jdbc4). 我试图在PreparedStatement中使用包含运算符(?,?,?|),但是? character被解析为变量占位符.可以转义此字符以在查询中发送正确的运算符吗? 一个例子: PreparedStatement
我正在使用PostgreSQL 9.1.4与hstore和
PostgreSQL JDBC驱动程序(9.1-901.jdbc4).
我试图在PreparedStatement中使用包含运算符(?,?&,?|),但是? character被解析为变量占位符.可以转义此字符以在查询中发送正确的运算符吗? 一个例子: PreparedStatement stmt = conn.prepareStatement("SELECT a,b FROM table1 WHERE c ? 'foo' AND d = ?"); stmt.setInt(1,dValue); stmt.executeQuery(); 在此表单中,以下示例将引发异常: org.postgresql.util.PSQLException: No value specified for parameter 2. 更新: 在调查pgjdbc驱动程序中的查询解析器后,this snippet似乎表明它无法逃脱?字符.剩下的问题是: > JDBC规范中是否有允许的内容?要转义并且不是参数占位符?
实际上,看起来java SQL解析器不符合hstore.
但是自从语法c? ‘foo’相当于存在(c,’foo’),你可以轻松解决这个问题.看看下面的页面,看看hstore的详细运算符是什么. Postgres hstore documentation (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |