【问题标题】:SQL Error: ORA-00933: SQL command not properly ended in Oracle Update querySQL 错误:ORA-00933:SQL 命令未在 Oracle 更新查询中正确结束
【发布时间】:2015-06-16 21:51:24
【问题描述】:

我有 SYSTEM_SQL_CHECK 表,其中我在 CHECK_SQL 列中保存了 sql。此列是 Varchar 数据类型。现在我想更新特定的 sql。我在下面写了更新 sql 查询,但它给出了错误SQL Error: ORA-00933: SQL command not properly ended。我也尝试使用双引号进行查询,但随后出现SQL Error: ORA-00972: identifier is too long 错误。

    Update RATOR_MONITORING_CONFIGURATION.SYSTEM_SQL_CHECK SET CHECK_SQL = 'select count(*) as CNT from O2_SDR_Header
where id = (select max(id) from O2_SDR_Header where id > 2012000000000000 and sp_id = 'SP602') 
And sp_id = 'SP602' and FILE_CREATED_DATE > (SYSTIMESTAMP - INTERVAL '2' HOUR)'
WHERE SYSTEM_SQL_CHECK_ID = 604;

【问题讨论】:

  • SQL 中字符串字面量需要用单引号括起来。请阅读手册(“Oracle SQL 的基本要素”一章)

标签: sql oracle sql-update


【解决方案1】:

这段代码应该是这样的:sp_id = 'SP602'sp_id = ''SP602''

这个'2'''2''

你的最终代码应该是这样的

 Update RATOR_MONITORING_CONFIGURATION.SYSTEM_SQL_CHECK SET CHECK_SQL = 'select count(*) as CNT from O2_SDR_Header
where id = (select max(id) from O2_SDR_Header where id > 2012000000000000 and sp_id = ''SP602'') 
And sp_id = ''SP602'' and FILE_CREATED_DATE > (SYSTIMESTAMP - INTERVAL ''2'' HOUR)'
WHERE SYSTEM_SQL_CHECK_ID = 604;

【讨论】:

    【解决方案2】:

    你需要转义你的单引号,如下所示

    Update RATOR_MONITORING_CONFIGURATION.SYSTEM_SQL_CHECK SET CHECK_SQL = "select count(*) as CNT from O2_SDR_Header
    where id = (select max(id) from O2_SDR_Header where id > 2012000000000000 and sp_id = ''SP602'') 
    And sp_id = ''SP602'' and FILE_CREATED_DATE > (SYSTIMESTAMP - INTERVAL '2' HOUR)"
    WHERE SYSTEM_SQL_CHECK_ID = 604;
    

    【讨论】:

    • 正如我在查询中提到的,当我尝试使用双引号时,我收到一个错误,因为 SQL 错误:ORA-00972:标识符太长
    • @Rahul - 它不是围绕文本文字的双引号 ("),而是两个单引号 (''')。非常不一样。还要考虑 the alternative quoting mechanism 用于文本文字。您还需要转义“2”间隔值周围的引号。
    • 哦,对不起,亚历克斯,但我也尝试了上面的查询,它给了我相同的标识符错误。
    • @Rahul 2 应该是固定的也添加''2''
    • 这仍然是错误的。 整个文字需要放在单引号中,而不是双引号中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    相关资源
    最近更新 更多