SQL Error: ORA-00933: SQL command not properly ended in Oracle Update query
SQL Error: ORA-00933: SQL command not properly ended in Oracle Update query
我有 SYSTEM_SQL_CHECK table,其中我在 CHECK_SQL 列中保存了 sql。此列是 Varchar 数据类型。现在我想更新特定的 sql.I 已经写在更新 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;
您需要对单引号进行转义,如下所示
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;
这段代码应该是这样的: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;
我有 SYSTEM_SQL_CHECK table,其中我在 CHECK_SQL 列中保存了 sql。此列是 Varchar 数据类型。现在我想更新特定的 sql.I 已经写在更新 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;
您需要对单引号进行转义,如下所示
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;
这段代码应该是这样的: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;