oracle 存儲過程中 如果用if語句判斷一條查詢語句的結果集是否為空
已經經過測試,可以。
create table test1023(id int); --創建測試表 test1023
declare cnt int;
begin
select count(*) into cnt from test1023;
if cnt=0 then
insert into test1023 values('1');
commit;
end if;
end;
oracle存儲過程IF判斷問題
你的IF 邏輯有問題:當輸入37的時候 flag>5 肯定結果是1,不會進入else了。
你可以再第一行加上FLAG當然你下面的邏輯還有問題,你自己去琢磨琢磨,根據你的需求慢慢改吧!
IF FLAG>5 and FLAGV_VALUE :=1;
ELSIF FLAG>10 THEN
V_VALUE :=2;
ELSIF FLAGV_VALUE :=3;
ELSIF FLAGV_VALUE :=4;
ELSE V_VALUE :=5;
END IF;
實在搞不懂邏輯,可以用switch……case……這樣清晰些。
oracle怎么寫IF語句
如果是 SQL 語句里面使用。
使用 DECODE 或者 CASE WHEN
DECODE 的用法就是
DECODE(abc, 50, 'A', 'B')
CASE WHEN 的用法就是
CASE WHEN abc=50 THEN 'A' ELSE 'B' END
如果是在存儲過程里面的話,就是簡單的 IF/ELSE 了
SQL 語句的話,就是
SELECT
abc, DECODE(abc, 50, 'A', 'B')
FROM
表
oracle 存儲過程里的if else
create or replace procedure p_run_temp as
S_DATE:=to_number(to_char(sysdate,'d'),'9');--查詢下to_char這個函數是否有問題
begin
if S_date=4 then
p_temp();
else
p_temp2();
end if ;
end p_run_temp;
存儲過程一般用AS。而且題中的存儲過程語法也有問題。
轉載請注明出處華閱文章網 » 存儲過程if語句oracle