以下のコードをご覧ください。コレクションの4番目の要素はnullなので、変数が存在しないと予想しています。しかし、まだ、私はが存在する場合にTRUEになります関数です。これがなぜ起こっているのかを明確にしてください。Oracleコレクション関数 - 期待した結果が得られません
DECLARE type nt is varray(5) of varchar2(5); nt1 nt := nt(); BEGIN nt1.extend(5); nt1 :=nt('ant','ball','cat',null,'elm'); for i in nt1.first..nt1.last loop dbms_output.put_line(nt1(i)); end loop; if nt1.exists(4) then dbms_output.put_line('TRUE'); end if; END;
私は真と評価するために存在する機能のために、その変数を単に拡張した場合には、十分ですか?
' 型NTがVARCHAR2(5)のVARRAY(5)でDECLAREを。 nt1 nt:= nt(); BEGIN nt1.extend(3); nt1:= nt( 'ant'、 'ball'、 'cat'); - 、null、 'elm'); for i for nt1.first..nt1.last ループ dbms_output.put_line(nt1(i)); エンドループ。 の場合 nt1.exists(4)次にdbms_output.put_line( 'TRUE'); else dbms_output.put_line( 'FALSE'); end if; END; ' このコードは、まだその変数を拡張していないため、FALSEと評価されます。 – Natty