sql >> データベース >  >> RDS >> Oracle

収集方法:OracleデータベースのEXISTS関数

    これで、前のチュートリアルのCOUNTである最初の収集関数の概念を学習しました。収集方法シリーズの2番目の関数に移りましょう。したがって、ここではPL/SQLコレクションメソッドEXISTSを紹介します。このブログでは、収集方法EXISTS()について詳しく説明します。

    収集方法EXISTS()とは何ですか?

    コレクションメソッドEXISTS()は、コレクション内の特定のインデックスにある要素の存在をチェックします。指定された要素が見つかった場合はTRUEを返し、それ以外の場合はFALSEを返します。

    EXISTS()関数を使用して、コレクション内の特定の行の存在を確認できます。

    収集方法の構文が存在します()

    EXISTS()関数の構文は次のとおりです–

    EXISTS (index number);

    EXISTS関数は、コレクションのセルの添え字/インデックス番号を入力として受け取り、コレクション内で検索します。 インデックス番号に対応する要素が見つかった場合はTRUEを返し、それ以外の場合はFALSEを返します。

    収集メソッドEXISTSはNULLを返しますか?

    EXISTS関数はnullを返しません。 TrueまたはFalseを返します。

    TRIMまたはDELETE機能を使用して既存の行を削除するとどうなりますか?

    TrimまたはDelete関数を使用して行を削除すると、収集メソッドEXISTS()はその行のインデックスに対してFALSEを返します。

    収集メソッドEXISTSは例外を発生させますか?

    いいえ、収集メソッドEXISTSは例外を発生させません。実際、これは、初期化されていないコレクションで使用された場合でも、例外を発生させない唯一の関数です。

    例外が発生しない場合、この関数を初期化されていないコレクションに適用するとどうなりますか?

    コレクションメソッドEXISTS()は、初期化されていないコレクションまたは要素のない初期化コレクションのいずれかに適用された場合、falseを返します。

    収集方法の例が存在します()。

    この簡単な例は、アプリケーションでこの関数を使用する方法を示しています。

    SET SERVEROUTPUT ON;
    DECLARE
            --Declare a local Nested Table
        	TYPE my_nested_table IS TABLE OF VARCHAR2 (20);
     --Declare collection variable and initialize the collection.	
    col_var_1   my_nested_table := my_nested_table('Super Man','Iron Man','Bat Man');
    BEGIN
        IF col_var_1.EXISTS (1) THEN
            DBMS_OUTPUT.PUT_LINE ('Hey we found '||col_var_1 (1));
        ELSE
            DBMS_OUTPUT.PUT_LINE ('Sorry, no data at this INDEX');
        END IF;
    END;
    /  
    

    上記のプログラムでは、コレクション「my_nested_table」のインデックス1に要素があるかどうかを確認しています。指定されたインデックスに要素がある場合は、IF-ELSEステートメントのIF部分が実行されます。それ以外の場合は、ELSE部分がアクションになります。

    どうしますか…?

    特定のインデックスにデータを挿入したいが、そのインデックスがすでにいくつかのデータを保持しているかどうかわからないとします。保持している場合は、上書きしないでください。この場合はどうしますか?

    収集メソッドEXISTSを使用してこの問題の解決策を見つける方法を知るには、YouTubeチャンネルでPL/SQLチュートリアルをご覧ください。

    これは非常に簡単なデモンストレーションです。私はあなたがいくつかのクレイジーな例を思い付くことができると確信しています。では、何を待っているのか、先に進んでコードを記述し、このメソッドを使用できる他の可能な方法を確認してください。

    コードを確認してほしい場合は、FacebookページまたはTwitterでもコードを共有できます。

    このブログはどうですか?改善してほしいことはありますか? FacebookページとTwitterで感じたことを教えてください。

    ありがとう、そして素晴らしい一日を。


    1. 基本的なSQLクエリ

    2. R12.2のadopのカットオーバーフェーズで何が起こるか

    3. SQLAlchemyを使用したOracleデータベースへの接続

    4. SQLServerが存在しない場合の挿入のベストプラクティス