- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试根据从 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/
这个问题已经有答案了: How can prepared statements protect from SQL injection attacks? (10 个回答) 已关闭 7 年前。 我最近了解
我有以下PreparedStatement: PreparedStatement statement = conn.prepareStatement("Select * from foo
对于我的情况,我为每个文件存储了版本,试图找到目录下文件的最大版本。 将目录路径传递给以下方法始终返回 0,因为准备语句的模式匹配失败。 public int getMaxVersion(String
我正在使用 Spring-JDBC 执行 SQL 并获取结果。 SELECT SUM(spend) total_sum FROM TABLE_NAME WH
我有以下数据库: CREATE TABLE b ( name VARCHAR(255) NOT NULL, text MEDIUMTEXT NOT NULL, PRIMARY
我正在尝试根据从 Excel 工作表读取的数据更新数据库中的记录。我在 db 中有超过 50 列,其列名存储在数组 columnNames[] 中。我使用以下代码创建 Sql 查询。 String
我是一名优秀的程序员,十分优秀!