oracle儲存過程判斷值是否相等

2021-10-22 08:34:22 字數 1522 閱讀 6310

問題1:左右值為null使用等號進行比較的情況

-- created on 2021/03/16 by kuroisheep

declare

i integer

; j integer

;begin

if i = j then

dbms_output.put_line(

'相等');

else

dbms_output.put_line(

'不相等');

endif

;end

;

期望結果:相等

實際執行結果:不相等

問題2:左邊或者右邊值為null使用不等號進行比較的情況

-- created on 2021/03/16 by kuroisheep

declare

i integer :=

123;

j integer

;begin

if i <> j then

dbms_output.put_line(

'不相等');

else

dbms_output.put_line(

'相等');

endif

;end

;

期望結果:不相等

實際執行結果:相等

解決方案

-- created on 2021/03/16 by kuroisheep

declare

i integer

; j integer :=

123;

begin

if i is

null

and j is

null

then

dbms_output.put_line(

'相等');

elsif i is

null

or j is

null

then

dbms_output.put_line(

'不相等');

elsif i = j then

dbms_output.put_line(

'相等');

else

dbms_output.put_line(

'不相等');

endif

;end

;

期望結果:不相等

實際執行結果:不相等

總結

具體判斷還是需要根據實際情況來進行,例如當引數不允許為空時,先判斷引數為空直接return,然後再進行後續比較。

判斷儲存過程是否存在

庫是否存在 if exists select from master.sysdatabases wherename n 庫名 print exists else print not exists 判斷要建立的表名是否存在 if exists select from dbo.sysobjects wh...

ORACLE儲存過程判斷非法字元

呼叫方法 驗證非法字元 ismg fun issensitivity v arr if not ismg then v sendmsg 很好,你的資訊是正常的。else v sendmsg 對不起,您的資訊含有敏感字,請修改後再發!end if 中間過程 create or replace func...

oracle 判斷值中是否存在漢字

with x as select 2320 fd少df,sr from dual union all select sr from dual union all select heleo sr from dual union all select 年 sr from dual union all s...