0

クエリの結果に依存する変数のリストを作成しようとしています。任意の数の変数を作成できるので、動的にする必要があります。しかし、ループの繰り返し回数を変数名に組み込む方法がわかりません。

私は次のようなことを考えています:

declare rc int default 0;
declare n_rows int;    

--The number of variables to declare below is unknown   

  select count(1) into n_row from MyTable;
  declare varname1 to varname@n_rows varchar(100);

    while rc < n_rows do    
  select varname into var@rc from (select varname, rownumber() over() as rn  from MyTable) where rn = rc;      

-- これを次のように解決したい:

select varname into var1...

select varname into var2...

select varname into var3..

終了します。

4

1 に答える 1

0

一般的に言って、不明な数の変数を保存しなければならない状況に陥った場合、それはプログラムの設計が間違っていることを示しています。すべての行をメモリに格納する必要があるのはなぜだと思いますか? データベースはセット処理用に最適化されています。

ただし、独自の方法で処理することにこだわる場合は、配列の使用を検討してください。配列は、要素を追加するにつれて大きくなる可能性があります (すべてのアプリケーション メモリを消費してデータベースをクラッシュさせるまでは、気にする必要はありませんよね?)

于 2013-09-13T12:22:25.220 に答える