我在 SQL Server 中有以下查询,我正在尝试将其转换为 Oracle 11g。
IF '[Param.1]' = 'S' OR '[Param.1]' = 'T' THEN
select * from ULQUEUE
END IF
但是当我在 Oracle 中编写相同的查询时,它会给出错误说明无效的 SQL 语句。那么如何将 IF-ELSE 合并到 Oracle 的 Select 语句中呢?
我在 SQL Server 中有以下查询,我正在尝试将其转换为 Oracle 11g。
IF '[Param.1]' = 'S' OR '[Param.1]' = 'T' THEN
select * from ULQUEUE
END IF
但是当我在 Oracle 中编写相同的查询时,它会给出错误说明无效的 SQL 语句。那么如何将 IF-ELSE 合并到 Oracle 的 Select 语句中呢?
您正在转换 T-SQL 语句。Oracle 中的等价物是匿名 PL/SQL 块。
但是,PL/SQL 比 T-SQL 要求更高一些。它需要将行选择为变量。如果查询将返回多行,我们需要定义一个集合变量或使用游标。
根据您的要求,您可以使用以下内容:
begin
if ( &¶m1 = 'S' or &¶m1 = 'T' ) then
for lrec in ( select * from ulqueue ) loop
do_something;
end loop;
end if;
end;
/
我同意这看起来比 T-SQL 需要更多的工作,但 PL/SQL 是一种具有更多功能的适当编程语言。 了解更多。