0

レコードが存在するかどうかを確認するために APEX_COLLECTION ビューをクエリしていますが、存在しない場合は NO_DATA_FOUND 例外が発生します。これを処理するには、匿名ブロックを使用しました。

BEGIN 

    SELECT c001, c002 INTO l_var1, l_var2
    FROM APEX_COLLECTION
    WHERE collection_name = 'TEST' AND c003='test';
EXCEPTION
WHEN NO_DATA_FOUND
    l_var1 := NULL;
    l_var2 := NULL;
END;

これを処理するより良い方法はありますか?

4

3 に答える 3

0

レコードが存在するかどうかだけを確認したい場合は、 de COUNT() 関数を使用できます。このように、匿名ブロックや NO_DATA_FOUND 例外を使用する必要はありません。COUNT 関数は常に値を返します。

SELECT COUNT(*)
INTO l_count
FROM APEX_COLLECTION
WHERE collection_name = 'TEST' AND c003='test';

IF l_count > 0 THEN
  -- Do something, the record exits
ELSE
  -- Do something, the record does not exit
END IF;
于 2020-12-12T07:22:27.323 に答える