1

アプリケーションの多くの場所で、データを CSV として表示する必要があります。

このために、通常はカーソルをループして CSV を作成します。

for j in c_get_mydata loop
    v_CSV := v_CSV || ', ' || j.column_value;
end loop;

クエリを受け入れて CSV 文字列を返す再利用可能な関数を作成するにはどうすればよいですか? これを別の関数として使用することをお勧めしますか、それとも上記のように各クエリを処理する方がよいですか? 別の関数として使用することをお勧めする場合、関数がクエリの文字列または結果のカーソルを入力として受け取ることをお勧めしますか?

編集:

明確化: 1 列のデータをカンマで区切って 1 行として表示したいと考えています。

例えば:Tom, Dick, Harry, Sally

次のように、複数の行に複数列のデータを表示するつもりはありません。

Tom, 18, London
Dick, 22, New York
Harry, 16, San Fransisco
Sally, 18, Paris

編集2:

収集機能について知りました:

select collect(employee_name)
from employees

これはデータセットを返しますが、どうすればそれを文字列に変換できますか?

4

2 に答える 2

3

最も簡単なオプションは、通常、DBMS_SQLパッケージを使用することです。Tom Kyte は、彼のdump_csv手順の良い例を示しています。もちろん、結果を を使用してファイルに書き込むのではなく、CLOB に書き込みたいと思うかもしれませんが、これutl_fileは比較的簡単に調整できます。

于 2012-10-15T06:11:28.530 に答える