oracleのSELECT結果をテキストに出力する

更新:2008.4.16 views:397

現場で提供していただいているPCで作業をしていると、いつも自分が使っているツールが無く、プロンプトからコマンドを実行して、結果をテキストに出力する。と言うことがたまにあったりします。

今回は、OracleでSELECT文を発行して、結果をテキストファイルに出力し、その後エクセルでデータをまとめたりしていたのですが、、、

単純にSELECT文を投げてリダイレクトしていると、一々ヘッダー行?が数レコードごとにテキストに書き込まれてしまい、非常に困ります。

そこで、今回知った情報を記述しておきます。

まず、どのようなコマンドを実行しているかというと、以下のようなよくある?コマンドです。

>sqlplus user_name/user_pass@host @sql_file > output_file

ここで指定しているsql_fileに、次のようなコードを記述しておきます。

SET LINESIZE 1000;
SET PAGESIZE 500;

こうすることで、行は1000文字で改行され、500行で1ページとして扱われるようになるため、わずらわしいヘッダー?のような行が500行ごとに出力されるようになります。

結果の上位数百行を出力したいとき、便利です。

ちなみに、oracleで抽出行数を制限したいときは、以下のようにします。

SELECT * FROM TABLE WHERE ROWNUM <= 100

このようにすると、上位100件が抽出されます。

何か条件を指定して、その結果から上位100を取得したいときは、以下のようにします。

SELECT
    *
FORM (
    SELECT
        FIELD1
    FROM
        TABLE
    GROUP BY
        FIELD1
)
WHERE
    ROWNUM <= 100

このようにすると、サブクエリの結果の上位100件を取得できます。

IT関係関連記事



Excelのstrconvが動かない
2019/09/07
 6 views





.htaccessの設定まとめ
2017/06/25
 305 views



これからブログなどのサイトを作りたいと思っている人は、お名前.comでのドメイン取得がオススメです。

■□━━ 急げ、ドメインは早い者勝ち! ━━□■
     ■お名前.com

アマゾンの2019年本屋大賞一覧

そして、バトンは渡された
ひと
ベルリンは晴れているか
熱帯
ある男

楽天市場のおすすめ商品一覧

お金2.0 新しい経済のルールと生き方 [ 佐藤航陽 ]
全部レンチン!やせるおかず 作りおき 時短、手間なし、失敗なし
「読む力」と「地頭力」がいっきに身につく 東大読書 [ 西岡 壱誠 ]