我在 SQL Anywhere 11 DB 上有一个表,其中一列称为“日期”。我正在使用 jconnect JDBC 驱动程序从我的 Java 代码连接到数据库。我用双引号引用了“日期”列,如下所示。
SELECT inv."date" FROM DBA.acc_invoicereturn inv
我有 2 个数据库文件,一个是正在运行的 SQL Anywhere 11 实例的副本。另一个来自我卸载并重新加载(使用 dbunload)到 SA 11 数据库的 SQL Anywhere 5 数据库。当我在第一个实例上运行此查询时,它运行良好。但是,我升级的那个,我得到以下错误。
com.sybase.jdbc3.jdbc.SybSQLException: SQL Anywhere Error -131: Syntax error near 'date' on line 4
at com.sybase.jdbc3.tds.Tds.a(Unknown Source)
at com.sybase.jdbc3.tds.Tds.nextResult(Unknown Source)
at com.sybase.jdbc3.jdbc.ResultGetter.nextResult(Unknown Source)
at com.sybase.jdbc3.jdbc.SybStatement.nextResult(Unknown Source)
at com.sybase.jdbc3.jdbc.SybStatement.nextResult(Unknown Source)
at com.sybase.jdbc3.jdbc.SybStatement.queryLoop(Unknown Source)
at com.sybase.jdbc3.jdbc.SybStatement.executeQuery(Unknown Source)
at com.sybase.jdbc3.jdbc.SybPreparedStatement.executeQuery(Unknown Source)
这些数据库是部署在某些商店的计费系统的一部分。我认为这与我所做的数据库升级有关,但是在连接到一些生产实例时也遇到了同样的错误。
我认为这与quoted_string
配置设置有关(我根本没有触及),但我不确定为什么它在第一种情况下有效,而不是在第二种情况下有效。
对此的任何帮助将不胜感激。
问候,Parikshit。