elif else if oracle_关于Oracle if elsif else
昨天被一同事問一問題,問題就是Oracle存儲過程中的IF邏輯塊
告訴他大概是這樣:
create or replace procedure testIfElsif (numb number) IS
begin
if numb = 1 thenDBMS_OUTPUT.put_line(1);else if numb = 2 thenDBMS_OUTPUT.put_line(2);elseDBMS_OUTPUT.put_line(3);end if;end;
結果死活編譯不過去,就又叫我幫他看,
編譯報錯:
PROCEDURE WAZTJD.TESTIFELSIF 編譯錯誤
錯誤:PLS-00103: 出現符號 "TESTIFELSIF"在需要下列之一時:
if
行:11
文本:END testifelsif;
修改過程:
一、將else if 去掉就能夠編譯通過且可以運行調用,說明是else if的問題
二、將else if 改為elseif 結果字體顏色不變色,說明不是關鍵字,編譯不通過
三、將代碼最后改為如下
create or replace procedure testIfElsif (numb number) IS
begin
if numb = 1 thenDBMS_OUTPUT.put_line(1);else if numb = 2 thenDBMS_OUTPUT.put_line(2);elseDBMS_OUTPUT.put_line(3);end if;end if;end;
編譯通過;
四、最后感覺還是有問題就在網上搜,終于真相大白是elsif,不是else if 也不是 elseif,更不是第三步的解決方法
最終代碼:
CREATE OR REPLACE PROCEDURE testifelsif(numb in number) AS
BEGIN
if numb = '1' thenDBMS_OUTPUT.put_line('1');
elsif numb= '2' thenDBMS_OUTPUT.put_line('2');elseDBMS_OUTPUT.put_line('3');end if;END testifelsif;
這是個坑,浪費時間、精力,希望在坑里的同學能夠趕緊爬出來!
另:
在寫博過程中,有一段測試代碼是在博客中寫的,粘到pl/sql中沒能編譯通過,
最終原因是因為博客中的空格默認為圓角空格導致的編譯不通過,在pl/sql中將空格刪除全部重新打出即可編譯通過。
總結
以上是生活随笔為你收集整理的elif else if oracle_关于Oracle if elsif else的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: aac fhg lc哪一个模式_旅游没电
- 下一篇: ansys怎么删除线段_科学网—ansy