gpt4 book ai didi

java - ReadyStatement 更新显示错误 ORA-00927 缺少等号

转载 作者:行者123 更新时间:2023-12-02 06:04:34 25 4
gpt4 key购买 nike

我正在尝试根据从 Excel 工作表读取的数据更新数据库中的记录。我在 db 中有超过 50 列,其列名存储在数组 columnNames[] 中。我使用以下代码创建 Sql 查询。

 String sqlUpdate= "Update "+tableName+
" set "+columnNames[0]+"=?";
for (int i=1;i<columnCount;i++)
{
sqlUpdate= sqlUpdate+","+columnNames[i]+"=?";
}
sqlUpdate= sqlUpdate+
" where demand_id=?";

在控制台上打印它所获得的等效查询是:

Update fulfillment_plan set DEMAND_ID=?,SBU=?,PROJ_DOMAIN=?,JOBCODE=?,INDENT_STATUS=?,JC_CREATED_ON=?,PROJECT_NAME=?,CUSTOMER_NAME=?,GROUP_CUSTOMER=?,US_DEMANDS=?,SUITE_NAME=?,ROLE_NAME=?,LOCATION=?,COUNTRY=?,GEO=?,AREA=?,OPEN_POS=?,PRODUCT=?,DEMAND_TYPE=?,POSITIONS_TO_FULFILL_Q4=?,FULFILLMENT_PLAN_Q4=?,TA_STATUS_Q4=?,POSITIONS_TO_FULFILL_Q3=?,FULFILLMENT_PLAN_Q3=?,TA_STATUS_Q3=?,POSITIONS_TO_FULFILL_Q2=?,FULFILLMENT_PLAN_Q2=?,TA_STATUS_Q2=?,POSITIONS_TO_FULFILL_Q1=?,FULFILLMENT_PLAN_Q1=?,TA_STATUS_Q1=?,NET_ADD_TYPE=?,ESSENTIAL_SKILL=?,SUITE_SKILLS=?,ADDITIONAL_SKILLS=?,POSITIONS_WITH_PROPOSALS=?,POSITIONS_WITHOUT_PROPOSALS=?,DEM_ST_DATE=?,OVER_DUE_STATUS=?,OVERDUE_DAYS=?,LEAD_TIME_DAYS=?,LEAD TIME BUCKET=?,DEM_END_DATE=?,CREATED_ON=?,INDENT_CREATED_ON=?,EBD=?,OPPORTUNITYID=?,LOAD_DATE=?,PROJECT_NUMBER=?,CUSTOMER_NO=?,CUSTOMER_SUB_GEO=?,DEMAND_STATUS=?,ENGAGEMENT_TYPE=?,INVOICE_TYPE=?,INDENT_CLASSIFICATIONS=?,PROJ_STAT=?,EFD_SLA=?,RM_EMP_NAME=?,MONTH=?,QUARTER=?,YEAR=?,ACCOUNT_ID=?,ACCOUNT_TEXT=?,STATUS=? where demand_id=?

然后我将值设置为“?”并在执行上述准备好的语句时收到“缺少等号”错误。我已经研究了大约 3 个小时,但无法解决它。请帮忙。

最佳答案

我怀疑这是由于 LEAD TIME BUCKET 列名称引起的,该名称应该带有下划线(如其他列名称)或以某种方式转义 - 列名称中的空格导致了错误。最好使用下划线,以便与其他列保持一致,并使 SQL 更简单。

(我还建议在 SQL 中添加空格 - 例如,每个逗号后添加一个空格 - 以便可以通过空格换行在文本编辑器中重新格式化 SQL,使其更易于阅读。我想要更多Java 代码中也有空格,但这显然是个人/团队偏好的问题。)

关于java - ReadyStatement 更新显示错误 ORA-00927 缺少等号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22402349/

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