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

すでに入力されているテーブルを更新する手順

    これは、オブジェクトを再作成しているためです。オブジェクトのインスタンス化されたバージョンをパラメータとしてプロシージャに渡す必要があります:

    create or replace procedure add_n_rows(
        Pn_rows in number
      , P_tab in out t_tf_tab ) is
    
    begin
      for i in P_tab.count .. P_tab.count + Pn_rows
       loop
         P_tab.extend;
         P_tab(l_tab.last) := t_tf_row(i, 'Description for '|| i);    
       end loop;
    end;
      

    P_tab を宣言しました OUT パラメータとして、これは変更できることを意味します。これを行いたくない場合は、「out」を削除して、t_tf_tab 型のローカル変数を宣言します。 、後で変更できます。

    たとえば、次のように個別に呼び出すことができます。

    declare
       l_tab t_tf_tab := t_tf_tab();
    begin
       l_tab.extend;
       l_tab(l_tab.last) := t_tf_row(1. 'Hello');
       add_n_rows(3, l_tab);
    end;
      


    1. MySQL 5.1でキーの長さを増やすにはどうすればよいですか?

    2. MySQLGROUPBYおよび空の行を埋める

    3. 複数のテーブルから複数のカウントを合計する方法

    4. 相互に更新する必要がある2つのテーブルの代替トリガー