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

.NETを介したPL/SQLコレクション型パラメータを使用したOracleプロシージャの呼び出し

    ODP.NETを介したプロシージャ呼び出しは、連想配列のみをサポートします。つまり、INDEX BY ...を使用します。 、ネストされたテーブルはサポートされていません。

    1つの解決策は、Orale手順で変換することです:

    CREATE OR REPLACE PACKAGE test_package_gkeu IS
    
        TYPE test_type IS TABLE OF NUMBER;    
        TYPE test_type_associative IS TABLE OF NUMBER INDEX BY INTEGER;
    
    PROCEDURE TEST1 (pvTest IN test_type_associative ) IS
    
    v test_type := test_type();
    BEGIN
       v.Extend(pvTest.COUNT);
       for i in pvTest.First..pvTest.Last loop
           v(i) := pvTest(i)
       end loop;
    
    select *
    into ...
    from receiver r
    where r.receiverid MEMBER OF (v);
    
    END;
    

    DMLステートメントの場合は、次のことも考慮してください。

    FORALL i IN INDICES OF pvTest 
        INSERT INTO MY_TABLE (COL_A)
        VALUES (pvTest(i));
    
    or 
    
    FORALL i IN INDICES OF pvTest 
        DELETE FROM receiver 
        WHERE receiverid  = pvTest(i);
    



    1. MySQLの最後の行を選択します

    2. MySQLで再帰的なSELECTクエリを実行するにはどうすればよいですか?

    3. T-SQLで日付から日を取得する方法

    4. SQLSELECTステートメント