SQL命令未正确结束是啥原因,去掉;也不行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL命令未正确结束是啥原因,去掉;也不行相关的知识,希望对你有一定的参考价值。

可能是批量插入时没有主键
1.首先仔细检查sql语句是否存在语法错误。

(如果确认没有错误,可以拿到sql development中去用sql工具试试)

2.检查使用连接数据库的方法。

executeQuery、execute、executeUpdate是否存在使用错误,或者换个试试

3.我把sql语句中的‘;‘去掉了,然后sql语句运行正常,没有报错,原因未知。

望采纳,谢谢!
参考技术A 以分号结尾是吗?你后面是否多了符号?追问

图片在那了,我觉得没多呀

追答

楼下已经测试时分号的问题,你自己测试下看看是不是这个问题!

来自 UPDATE 查询的“SQL 命令未正确结束”错误 [重复]

【中文标题】来自 UPDATE 查询的“SQL 命令未正确结束”错误 [重复]【英文标题】:"SQL command not properly ended" error from UPDATE query [duplicate] 【发布时间】:2013-01-15 22:59:35 【问题描述】:

我正在尝试用 VB.NET 代码更新 SQL Server 表中的多行。但是,在包含更多 SELECT 语句之前,我会专注于更新一行。我了解以下方法非常灵活,但它会抛出错误“SQL 命令未正确结束”:

UPDATE ndcs 
SET    PACKAGE_TYPE_CODE = x.package_type_code, 
       PACKAGE_DESC = x.package_desc, 
       COMMENTS = x.comments 
FROM   hub_non_dcs_product_pkgtype ndcs 
       INNER JOIN (SELECT PRODUCT_ID = 'SEN0982_pdf_1', 
                          PACKAGE_TYPE_CODE = '', 
                          PACKAGE_DESC = '', 
                          COMMENTS = 'DPDC LITERATURE') x 
               ON x.product_id = ndcs.product_id 

我的语法有什么问题?

【问题讨论】:

老实说,我看不出有什么问题 - 我通过 SQL 2008 运行它,它运行良好。您是否尝试过我所说的“以防万一愚蠢因素”的变化,例如'SEN0982_pdf_1' AS PRODUCT_ID...。甚至,直接将其剥离并尝试使用 WHERE 子句? 您有完整的错误信息要发布吗?我也没有发现任何直接的语法错误。 您的错误消息似乎是 Oracle 错误,您确定这是 SQL Server 吗?如果在查询的末尾加上分号会发生什么?你能展示执行 SQL 代码的 VB.NET 代码吗?正如其他人所说,完整的错误消息/堆栈跟踪会很有用。 正如@Pondlife 建议的那样,您确定此查询是针对 SQL-Server 而不是 Oracle 运行的吗? 假设是Oracle,大概是this issue 【参考方案1】:

试试这个:

UPDATE ndcs 
SET (PACKAGE_TYPE_CODE, PACKAGE_DESC, COMMENTS )  = (
SELECT
    x.package_type_code, 
    x.package_desc, 
    x.comments 
FROM   
    hub_non_dcs_product_pkgtype ndcs 
    INNER JOIN (SELECT PRODUCT_ID = 'SEN0982_pdf_1', 
                      PACKAGE_TYPE_CODE = '', 
                      PACKAGE_DESC = '', 
                      COMMENTS = 'DPDC LITERATURE') x 
           ON x.product_id = ndcs.product_id 
)

【讨论】:

以上是关于SQL命令未正确结束是啥原因,去掉;也不行的主要内容,如果未能解决你的问题,请参考以下文章

SQL 语句 命令未正确结束,求原因!

oracledelete关联删除sql命令未正确结束

mybatis 中用insert into select ..... 报错命令未正确结束,但把这句sql放到plsql中执行正常

mybatis 中用insert into select ..... 报错命令未正确结束,但把这句sql放到plsql中执行正常

ora-00933: sql 命令未正确结束怎么解决

ORA-00933: SQL 命令未正确结束 00933. 00000 - “SQL 命令未正确结束