Oracle 查询:同一 SQL 文件中的两个/多个简单 IF 条件块未执行 [duplicate]

Oracle Query: Two/Multiple simple IF condition blocks in the same SQL file not executing [duplicate]

提问人:Lohe Takshan Navaneethan 提问时间:11/10/2023 最后编辑:BohemianLohe Takshan Navaneethan 更新时间:11/11/2023 访问量:19

问:

SQL文件包含两个简单的IF条件,但它不在TOAD中执行:

IF (SELECT COUNT(COLUMNNAME1) FROM TABLENAME1 WHERE COLUMNNAME1 = 'UNIQUEID1') > 0)
BEGIN
(UPDATE QUERY1)
END;

IF (SELECT COUNT(COLUMNNAME1) FROM TABLENAME1 WHERE COLUMNNAME1 = 'UNIQUEID2') > 0)
BEGIN
(UPDATE QUERY2)
END;

但是这些是单独成功执行的,如果查询缺少某些内容,请告诉我。

成功执行,并且 IF 条件通过以更新数据库中的表

数据库 Oracle IF-statement TOAD PLS-00103

评论

1赞 p3consulting 11/11/2023
如果?不是 SQL 语句,在 PL/SQL 中应以“END IF”而不是“END”结尾 + 整个代码应位于“BEGIN/END”块中。

答:

0赞 pmdba 11/11/2023 #1

应该更像这样:

BEGIN        
    IF (SELECT COUNT(COLUMNNAME1) FROM TABLENAME1 
         WHERE COLUMNNAME1 = 'UNIQUEID1') > 0 THEN
        UPDATE QUERY1;
    END IF;

    IF (SELECT COUNT(COLUMNNAME1) FROM TABLENAME1 
         WHERE COLUMNNAME1 = 'UNIQUEID2') > 0 THEN
        UPDATE QUERY2;
    END IF;
END;

您可能还希望在此脚本中的某个位置提交更改。