gpt4 book ai didi

java - Java 中的 DB2 语法错误,在 SQL 编辑器中运行良好

转载 作者:行者123 更新时间:2023-12-01 14:19:48 26 4
gpt4 key购买 nike

我有以下 java 代码来从传入的连接创建准备好的语句。这只是代码的一部分,为了匿名,我更改了表的名称。

private static final String preparedStatementSQL = "INSERT INTO TABLE (STORE_ID,"
+ "BRAND_NAME,BUSINESS_DATE,HOUR,FCST_SYSSLS_AMT,FCST_USERSLS_AMT,FCST_SYSTRN_CNT,"
+ "FCST_USERTRN_CNT,ACTION_TIMESTAMP) VALUES (?,?,?,?,?,?,?,?,(current timestamp))";

private PreparedStatement ps = null;

public TABLE(Connection con) throws SQLException{
this.ps = con.prepareStatement(preparedStatementSQL);
}

当它运行以下行时:

this.ps = con.prepareStatement(preparedStatementSQL);

我收到以下 SQL 错误:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "HOUR" at line 1, column 67.

我将该语句复制到 SQL 编辑器 (SQuirreL) 中并输入一些虚构的值,它运行良好(没有语法错误!)。

它是一个 IBM DB2 数据库。

我尝试删除列名称来执行以下操作:

INSERT INTO TABLE VALUES (?,?,?,?,?,?,?,?,(current timestamp))

它解决了问题,但我必须让它使用 (COLUMNS) VALUES (?...) 格式。

大家有什么想法吗?

最佳答案

HOUR DB2 中的保留字。列表为here .

您应该在列列表中将其括在双引号 (") 中。

TABLE 也是一个保留字。不过,我假设您在那里有一个真实的表名。

关于java - Java 中的 DB2 语法错误,在 SQL 编辑器中运行良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17709997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com