oracle+count判断语句,oracle – if(select count(column)from table)> 0 then

是的,你必须使用一个变量。您不能直接在PL / sql表达式中使用sql语句:

sql> begin

2 if (select count(*) from dual) >= 1 then

3 null;

4 end if;

5 end;

6 /

if (select count(*) from dual) >= 1 then

*

ERROR at line 2:

ORA-06550: line 2,column 6:

PLS-00103: Encountered the symbol "SELECT" when expecting one of the following:

...

...

相反,你必须这样做:

sql> set serveroutput on

sql>

sql> declare

2 v_count number;

3 begin

4 select count(*) into v_count from dual;

5

6 if v_count >= 1 then

7 dbms_output.put_line('Pass');

8 end if;

9 end;

10 /

Pass

PL/sql procedure successfully completed.

当然,您可能可以在sql中完成所有事情:

update my_table

set x = y

where (select count(*) from other_table) >= 1;

很难证明有些事情是不可能的。除了上述简单的测试用例,您可以查看syntax diagram的IF语句;您将不会在任何分支中看到SELECT语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值