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

ユーザー定義リストを休止状態からOracleストアドプロシージャに渡す

    1. OBJECTタイプを作成します。たとえば、MyType is OBJECT .... 必要なすべてのフィールドを備えたOracleの場合
    2. コレクションタイプを作成します。TableOfMyObject IS TABLE OF MyObjectType
    3. TableOfMyObjectを使用するプロシージャを作成します パラメータとして。

    SELECT * FROM TABLE(collection_variable)のようなストアドプロシージャのSQLステートメントでコレクション変数を使用できます。

    私も同じことをしましたが、最大の課題は、hibernateを使用してアプリから呼び出すことでした-私はついにそれを行う方法を見つけました。

    更新 Toadから実行できるSQL。

    set serveroutput on; -- for debugging, 
    -- it makes sense if your procedure outputs anything
    declare my_list TableOfMyObject  := TableOfMyObject ();
    begin 
      my_list.extend;
      my_list(1) := MyType([MyType constructor parameters]);
    
      my_list.extend;
      my_list(2) := MyType([MyType constructor parameters]);
      your_procedure(my_list);
    end;
    



    1. 各レコードのカウントを運ぶ新しいフィールドを導き出します

    2. Javaを使用してmysqlにデータを挿入する方法

    3. SQLite JSON_GROUP_ARRAY()

    4. PostgreSQLの特定のデータベースに権限を付与する