%ROWTYPE
を作成することはできません 不明なテーブルの変数であり、コンパイル時にテーブル名がわからない場合、列名を静的に参照することはできません。
dbms_sqlパッケージを使用して、完全に動的なSQLステートメントを処理できます。 SQLステートメントを準備し、列の数とそのデータ型を確認するために列を記述し、適切な変数をバインドしてから、データをフェッチする必要があります。投稿した例よりもはるかに面倒なコードの記述方法ですが、非常に柔軟性があります。
リンク先のドキュメントには、dbms_sqlパッケージの使用例がいくつかあります。 UTL_FILE
を使用して任意のクエリの結果をCSVファイルに書き込むTomKyteのdump_csv関数を確認することもできます。 。本当にデータをDBMS_OUTPUT
に書き込みたい場合 、UTL_FILE
を簡単に置き換えることができます DBMS_OUTPUT
を使用した呼び出し 。ただし、データをDBMS_OUTPUT
に書き込むだけでなく、もっと便利なことをしたいと思っていることは間違いありません。 バッファリングするので、トムの手順はおそらくあなたが実際に達成しようとしていることに近いでしょう。