日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

elif else if oracle_关于Oracle if elsif else

發布時間:2023/12/2 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。