oracle存儲過程if結束
1. oracle存儲過程IF判斷的問題
問題1:當你傳入37
時,IF
FLAG>5
已經滿足條件了,直接V_VALUE
:=1;,不會繼續判斷了。然後就調到end
if。可以按f9調試,不信一步步看它的執行過程。
問題2:IF
V_NULL=NULL,不是這樣寫,是IF
V_NULL
IS
NULL
,就會輸出888啦。
2. oracle存儲過程中的if then return end if中,如果執行到return,是跳出if循環,還是停止存儲過程
使用return是直接跳出存儲過程。
3. oracle 存儲過程
create or replace procere sp_add_emp2( --創建名為sp_add_emp2存儲過程
v_empno emp.empno%type, --------- 傳入存儲過程中的參數
v_ename emp.ename%type,
v_deptno dept.deptno%type,
v_dname dept.dname%type,
num out number ----------存儲過程執行完畢後返回的值
)as
num1 number; ------自定義變數
num2 number;
begin
--查詢dept表中的數據總共有多少行,賦值給num1,
--條件是欄位deptno等於v_deptno(傳進來的參數)
select count(*) into num1 from dept where deptno=v_deptno;
if(num1=0) then --如果沒數據
--則給dept表的deptno 和dname列插入一條數據,值為v_deptno,v_dname
insert into dept(deptno,dname) values(v_deptno,v_dname);
end if; --If語句結束語
---同上。
select count(*) into num2 from emp where empno=v_empno;
if(num2=0)then
insert into emp(empno,ename,deptno) values(v_empno,v_ename,v_deptno);
else --如果查詢到有數據則提示錯誤信息,員工ID重復,不插入數據
raise_application_error(-202021,'員工id 重復!!!');
end if;
num:=num1; --定義的輸出參數等於num1。
commit; --結束存儲過程。
4. oracle 存儲過程中if else的應用
if( a==1 && b==1) 這樣寫:
if a = 1 and b = 1 then
-- 裡面寫if成立情況的代碼
else
-- else情況
end if;
if(a==1 | | b==1) 這樣寫:
if a = 1 or b = 1 then
-- 裡面寫if成立情況的代碼
else
-- else情況
end if;
5. oracle 存儲過程 if語句
&&用and表示,如:
if 1=1 and 2=2 then
...
end;
||用or表示。
!用not表示。
6. oracle存儲過程中if條件後的sql沒有執行
你把你這兩個 dbms輸出的語句注釋掉試下,你這兩個語句後面都有封號,不是代表if語句已經結束了嗎
7. 執行oracle存儲過程的時候,提示在①那個地方報命令未正確結束
select * from B where city_code =upp; //這句話有什麼用?貌似沒有用到么
insertintoBvalues((=(=addCode)),------------------①
oracle裡面沒有這種語法,有兩種方式你可以嘗試
select xxx into 到變數里。如select xxx into A,然後insert into B values(A);
select xxx from xxx。如:
insert into B
select (select a from A),(select b from A) from al;
8. oracle存儲過程IF判斷問題
問題1:當你傳入37
時,if
flag>5
已經滿足條件了,直接v_value
:=1;,不會繼續判斷了。然後就調到end
if。可以按f9調試,不信一步步看它的執行過程。
問題2:if
v_null=null,不是這樣寫,是if
v_null
is
null
,就會輸出888啦。
9. oracle存儲過程中寫IF ELES
if 條件 then
語句
elsif 條件 then
語句
else
語句
end if;
10. oracle 存儲過程里的if else
ifS_date=4then
p_temp();
elsifS_date!=4then
p_temp2();
endif;