最速怪談選手権

こんにちは。

Oracle 9iで開発をしているのですが、
PL/SQLで引数にテーブル名(物理名)を渡せば
そのテーブルのデータを全件ファイルに出力するような
処理は書けるでしょうか?

お力を貸してください。
よろしくおねがいします。

A 回答 (1件)

こんにちわ。


> データを全件ファイルに出力するような処理は書けるでしょうか?
PL/SQL だけでやろうとすると、かなり強引な開発をしないといけません。
バイナリデータの扱いとかは、かなり面倒だと思います.
詳細は、「PL/SQL ユーザーズガイド」の動的SQL を確認して下さい。

SQL*Plus を使って、
connect ユーザ名/パスワード
set pages 0
set lines 9999
set long 9999
set trimspool on
set heading off
set echo off
set colsep ,
alter session set NLS_DATE_FORMAT = 'DATE型出力形式';
alter session set NLS_TIMESTAMP_FORMAT = 'TIMESTAMP型出力形式';
spool hogehoge.csv
select * from スキーマ名.テーブル名;
spool off

とかすれば、どうでしょう?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>PL/SQL だけでやろうとすると、かなり強引な開発をしないといけません。
>バイナリデータの扱いとかは、かなり面倒だと思います.
そうですか。
現実的には回避策を探すとして、強引な開発をすれば可能なんですか?
動的カーソルにしても、フェッチした(自動でされた)た変数に対して
カラムを指定できないので、データが取れないですし。。。
order句みたいにインデックスでデータ取得もできないし。

自分で考え付いたのは全部試してみたのですが、
すべて失敗に終わりました。

例に挙げていただいた、SQL*PLUSに引数をつけて
バッチからキックする方法でなんとかやってみたいと思います。

ありがとうございました。

お礼日時:2007/02/14 00:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す