2011-07-15 18 views
0

変数割り当てが空の結果セットの結果である場合、IF条件にする必要がありますか?Oracle - IF THEN ELSE文の空の結果セットを処理する

例:

CREATE OR REPLACE Function get_values 
    (chv_input IN varchar2) 
    RETURN varchar2 
IS 
    chv_output varchar2(100); 

    BEGIN 

select 'value' 
    into chv_output 
from dual where 1=2; 

IF chv_output is null THEN --this condition is not working 

    chv_output := 'null'; 

ELSE 
    chv_output := 'not null'; 

END IF; 

    RETURN chv_output; 

END; 

--select 1, get_values('112') from dual 

答えて

2

は、代わりにこれを試してみてください:

EXCEPTION 
WHEN NO_DATA_FOUND 
    chv_output := 'null'; 
+0

素晴らしいです。私は選択の直後に使用した。このように、デュアルから1 = 2のchv_outputに 'value'を選択します。除外 NO_DATA_FOUNDの場合は NULLです。 – MaLo