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

ネストされた配列と連想配列の違いは何ですか?

    これは、一般的に知られていない別の違いです。 2つのネストされたテーブルを=で比較できます または<> しかし、連想配列はできません。

    DECLARE
    
        TYPE associative_array IS TABLE OF INTEGER INDEX BY PLS_INTEGER;
        a_var_associative_array associative_array;
        b_var_associative_array associative_array;
    
        TYPE nested_table IS TABLE OF INTEGER;
        a_var_nested_table nested_table := nested_table(1, 2, 3, 4, 5);
        b_var_nested_table nested_table := nested_table(5, 4, 3, 2, 1);
    
    BEGIN
    
        IF a_var_nested_table = b_var_nested_table THEN
            -- Note, the different order of values!
            DBMS_OUTPUT.PUT_LINE ( 'TRUE' );
        ELSE
            DBMS_OUTPUT.PUT_LINE ( 'FALSE' );
        END IF;
    
        -- IF a_var_associative_array = b_var_associative_array THEN -> gives you an error! 
    
    END;
    

    ネストされたテーブルを使用する場合は、マルチセットを使用することもできます。オペレーターマルチセット条件 および SET 連想配列では使用できません。



    1. MySQLで[メールで保護された]権限で実行するにはどうすればよいですか?

    2. Postgresqlクエリ用のPHPの列名のバインディング変数

    3. GROUPBYを使用して統計を要約するOracleSQLクエリ

    4. JSONキーのpostgres更新ステートメントで値をインクリメントする方法