使用 SQLKorma 获取语法异常:使用 SQL 执行查询失败

Posted

技术标签:

【中文标题】使用 SQLKorma 获取语法异常:使用 SQL 执行查询失败【英文标题】:getting exception with SQLKorma for syntax: Failure to execute query with SQL 【发布时间】:2014-02-25 07:13:38 【问题描述】:

知道这个异常试图传达什么吗? 我将 sqlKorma 与 Postgres 9.3 一起使用。 我试图在表中一次插入多行,但出现语法错误。

现在我的查询中的任何地方都没有“0”,也没有编写原始 SQL 来弄乱语法。

korma 文档也不是很清楚。

Failure to execute query with SQL:
DO 0  ::  []
PSQLException:
 Message: ERROR: syntax error at or near "0"
  Position: 4
 SQLState: 42601
 Error Code: 0
org.postgresql.util.PSQLException: ERROR: syntax error at or near "0"
  Position: 4

这是我的代码

(insert vendor-subsidiary-allowance                                                                                                       
          (values (vec (for [p (seq percentages)]                                                                                           
                         :id (java.util.UUID/randomUUID)                                                                                   
                          :type "%"                                                                                                         
                          :id_allowance_category (utils.uuid/from-str (p 0))                                                                
                          :id_vendor_subsidiary (allowance-form "vendor_sub_id")                                                            
                          :value  (parse-number (p 1)))))) 

注意:百分比是一个字典,其中 uuid 字符串作为键,值作为一些数字字符串

【问题讨论】:

【参考方案1】:

也许您想阅读this 以找到将生成的 SQL 打印到控制台的方法。 您可以使用sql-onlydry-run 宏来执行此操作。

使用sql-onlydry-run 打印生成的SQL 并检查SQL 是否正常。

【讨论】:

哦……太好了!但 sql-only 显示占位符,没有正在发生的值。 您也可以通过在postgresql.conf 中设置log_statement = 'all' 然后从PostgreSQL 的日志中获取它来获取SQL 文本。

以上是关于使用 SQLKorma 获取语法异常:使用 SQL 执行查询失败的主要内容,如果未能解决你的问题,请参考以下文章

SQL语法异常 - 无效字符,但查询工作正常

执行sql语法时出现异常[重复]

在 C# 中使用 LINQ 方法语法 (LINQ to SQL) 时发生异常

SQL记录-PLSQL异常

Java Jdbc SQL 异常(语法错误)

PL/SQL系统定义的异常操作实例讲解