gpt4 book ai didi

java - 更新重复 key ,命令未正确结束

转载 作者:行者123 更新时间:2023-11-30 01:29:01 24 4
gpt4 key购买 nike

我搜索了很多并发现了一些类似的案例,但没有一个帮助我使其工作,它们都在某种程度上有所不同,所以我有这个查询:

String insertTableSQL = "INSERT INTO dev_corpus"  
+"(corpusid,corpus_name,corpusdesc,corpusimageids,rocf1,rocf2,rocf3,rocc1,rocc2,rocc3,corpusactive,corpusrunfrequency,corpuslastrun,corpuslastsync,rocsettingid,corpusaffinity,corpusterms,corpusdomain) VALUES"
+"(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
+"ON DUPLICATE KEY UPDATE "
+"corpusid = VALUE(?)"; // I have also tried VALUES

它引发了我这个错误:

ORA-00933: SQL command not properly ended
java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)

这是我的表格:

CREATE TABLE "SBOOKS"."DEV_CORPUS"   
( "CORPUSID" NUMBER(9,0) NOT NULL ENABLE,
"CORPUS_NAME" VARCHAR2(768 BYTE) NOT NULL ENABLE,
"CORPUSDESC" VARCHAR2(4000 BYTE),
"CORPUSIMAGEIDS" VARCHAR2(768 BYTE),
"ROCF1" FLOAT(63),
"ROCF2" FLOAT(63),
"ROCF3" FLOAT(63),
"ROCC1" FLOAT(63),
"ROCC2" FLOAT(63),
"ROCC3" FLOAT(63),
"CORPUSACTIVE" NUMBER(3,0),
"CORPUSRUNFREQUENCY" NUMBER(3,0),
"CORPUSLASTRUN" DATE,
"CORPUSLASTSYNC" DATE,
"ROCSETTINGID" NUMBER(3,0),
"CORPUSAFFINITY" NUMBER(3,0),
"CORPUSTERMS" VARCHAR2(4000 BYTE),
"CORPUSDOMAIN" NUMBER(3,0),
PRIMARY KEY ("CORPUSID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "DDATA" ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "DDATA" ;

你能告诉我出了什么问题吗?我尝试在 MYSQL 中运行它,但出现了同样的错误。你知道我的查询的哪一部分是错误的吗?我该如何解决这个问题?

谢谢

最佳答案

您在 VALUES 列表之后、“ON DUPLICATE KEY UPDATE”之前缺少一个空格

String insertTableSQL = "INSERT INTO dev_corpus"
+"(corpusid,corpus_name,corpusdesc,corpusimageids,rocf1,rocf2,rocf3,rocc1,rocc2,rocc3,corpusactive,corpusrunfrequency,corpuslastrun,corpuslastsync,rocsettingid,corpusaffinity,corpusterms,corpusdomain) VALUES"
+"(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
+"ON DUPLICATE KEY UPDATE "
+"corpusid = VALUE(?)"; // I have also tried VALUES

下面的第一行看到我在 ) 和 "... 之间放置了一个空格

 +"(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) "
+"ON DUPLICATE KEY UPDATE "

关于java - 更新重复 key ,命令未正确结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17680357/

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