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

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

    今日のPL/SQLチュートリアルは、すべて収集メソッドLIMITに関するものです。この収集方法シリーズには、カウント、存在、最初、最後の4つの関数がすでに表示されています。 Limitは、今日学習する5番目の関数です。

    収集方法の制限とは何ですか?

    実際にはPL/SQL関数であるコレクション・メソッドLIMITは、VARRAYが保持できる要素の最大数を返します。これは、この関数を使用することで、VARRAYに格納できる要素の数を確認できることを意味します。

    収集メソッドLIMITは何を返しますか?

    収集メソッドLIMITはPLS_INTEGERタイプの値を返しますか?

    この関数は、他の2つのコレクションのネストされたテーブルと連想配列でも機能しますか?

    収集メソッドLIMITは、VARRAYでのみ機能します。ネストされたテーブルまたは連想配列に適用された場合、この関数はNULLまたはNo値を返します。したがって、答えは、いいえ、収集関数LIMITはネストされたテーブルと連想配列では機能しません。

    収集関数LIMITの仕様は何ですか?

    収集関数LIMITの仕様は次のとおりです。

    FUNCTION LIMIT RETURN pls_integer;

    収集関数LIMITは例外を発生させますか?はいの場合、いつですか?

    はい、関数LIMITは、初期化されていないネストされたテーブルまたはVARRAYに適用されると、COLLECTION_IS_NULL例外を発生させます。

    関数LIMITの使用例を教えてください。

    もちろん。これは、VARRAYで収集関数LIMITを適切に使用する方法を示す非常に簡単な例です。

    SET SERVEROUTPUT ON;
    DECLARE
        TYPE inBlock_vry IS VARRAY (5) OF NUMBER;
        vry_obj inBlock_vry := inBlock_vry();
    BEGIN
     --Let's find out total number of indexes in the above VARRAY
        DBMS_OUTPUT.PUT_LINE ('Total Indexes '||vry_obj.LIMIT);
    END;
    /
    
    のインデックスの総数を調べましょう。

    同じ情報を提供する関数COUNTはありませんか?

    収集関数LIMITは、VARRAYのインデックスの総数をこれらのインデックスが空であるかデータを保持しているかどうかに関係なく返します。 。 VARRAYの定義をチェックし、格納するように設計されている要素の総数を確認して、その数を返します。

    収集関数COUNTは、空ではないインデックスの数を返します。 および一部のデータを保持する

    このPL/SQLプログラムを見てください。これは、収集方法COUNTとLIMITの違いをより明確に理解するのに役立ちます。

    SET SERVEROUTPUT ON;
    DECLARE
        --Create VARRAY of 5 element
        TYPE inblock_vry IS
            VARRAY ( 5 ) OF NUMBER;
        vry_obj   inblock_vry := inblock_vry ();
    BEGIN
        --Insert into VARRAY
        	vry_obj.extend;
        	vry_obj(1) := 10 * 2; 
    dbms_output.put_line('Total Number of Index ' || vry_obj.limit);
    dbms_output.put_line('Total Number of Index which are occupied ' || vry_obj.count);
    END;
    /
    

    上記のコードには、NUMBERデータ型の5つの要素を保持できるVARRAYがあります。実行セクションには、2つのDBMS出力ステートメントがあります。 LIMIT関数の結果を示している最初の出力ステートメントは5を返します。これは、VARRAYの合計強度であるためです。2番目の出力ステートメントは1を返します。これは、これら5つのインデックスのうち、データが格納されているインデックスが1つしかないためです。

    ビデオで、収集メソッドLIMITを使用してデータをVARRAYに格納するために未使用のままになっている要素の総数を確認する方法を示しますか?

    そうですか?私はそれを言いましたか?冗談です。

    VARRAYで使用するための空いているインデックスの数を見つけるのは非常に簡単です。方法を教えてください。

    上で述べたように、収集関数COUNTは、データが格納されているインデックスの数を返し、収集関数LIMITは、VARRAYが収容できるインデックスの総数を返します。

    LIMIT関数の結果からcount関数の結果を引くと、データをVARRAYに格納するために未使用のままになっている要素の総数が得られます。例

    DECLARE
        --Create VARRAY of 5 element
        TYPE inblock_vry IS
            VARRAY ( 5 ) OF NUMBER;
        vry_obj   inblock_vry := inblock_vry ();
    BEGIN
        --Insert into VARRAY
        vry_obj.extend;
        vry_obj(1) := 10 * 2;
        dbms_output.put_line('Total Number of Index ' || vry_obj.limit);
        dbms_output.put_line('Total Number of Index which are occupied ' || vry_obj.count);
        dbms_output.put_line('Total Number of Vacant index left for use '
                                || (vry_obj.limit - vry_obj.count) );
    END;
    /
    

    これは、認定試験とOracleデータベースの収集方法LIMITに関するインタビューで期待できるすべての質問に答えるPL/SQLチュートリアルです。

    このチュートリアルで取り上げたり言及したりするのを忘れたものはありますか?もしそうなら、私にさせてください。 TwitterまたはFacebookで私に手紙を書いてください。

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


    1. timeofday()がPostgreSQLでどのように機能するか

    2. SQLServerでINNERJOINを使用して削除するにはどうすればよいですか?

    3. oracle sqlの結果をWindowsのファイルに出力する方法は?

    4. PostgreSQLユーザーパスワードを変更するにはどうすればよいですか?