1

我在 SQL Server 中有以下查询,我正在尝试将其转换为 Oracle 11g。

IF '[Param.1]' = 'S' OR '[Param.1]' = 'T' THEN
select * from ULQUEUE
END IF

但是当我在 Oracle 中编写相同的查询时,它会给出错误说明无效的 SQL 语句。那么如何将 IF-ELSE 合并到 Oracle 的 Select 语句中呢?

4

1 回答 1

1

您正在转换 T-SQL 语句。Oracle 中的等价物是匿名 PL/SQL 块。

但是,PL/SQL 比 T-SQL 要求更高一些。它需要将行选择为变量。如果查询将返回多行,我们需要定义一个集合变量或使用游标。

根据您的要求,您可以使用以下内容:

begin
    if ( &&param1 = 'S' or &&param1 = 'T' ) then
        for lrec in ( select * from ulqueue ) loop
           do_something;
        end loop;
    end if;
end;
/   

我同意这看起来比 T-SQL 需要更多的工作,但 PL/SQL 是一种具有更多功能的适当编程语言。 了解更多

于 2012-11-01T08:22:10.073 回答