Din*_*nne 2 oracle conditional plsql scalar-subquery
我有一个类似下面的If语句块,它没有错误 - PLS-00103:遇到以下其中一个时遇到符号"SELECT"....
Begin
If (select count(*) from Table1) > 0 then
dbms_output.put_line('Test');
end if;
end;
Run Code Online (Sandbox Code Playgroud)
我有类似的Case语句,工作正常
select
case
when (select count(*) from Table1) > 0
then 2
else
1
end
from dual
Run Code Online (Sandbox Code Playgroud)
从我在Oracle Documentation中读到的if和when何时支持布尔表达式,任何想法是否在If条件中支持子查询.
注意:语句已经简化,我真的不会得到整个表的计数,所以请不要优化建议
不,你不能以你想要的方式使用SELECT.
在使用CASE的示例中,您没有使用CASE"语句" - 您正在使用CASE 表达式,该表达式恰好嵌入在SQL语句中.在这种情况下,您可以使用子查询,因为它位于SQL语句的上下文中,而不是过程语句中.您将无法在过程CASE语句中使用这样的子查询.
| 归档时间: |
|
| 查看次数: |
11720 次 |
| 最近记录: |