タブ区切りデータ ファイルを生成するための SQLPlus 設定
質問
スプレッドシートに取り込んだり、さらに処理したりするために、特定の SQL クエリを適切にタブで区切られた出力に変換するのに役立つ sqlplus 構成ディレクティブの優れたセットを持っている人はいますか?
解決
Oracle のドキュメントを確認してください。
Oracle でタブを生成するには、タブの ASCII 値 9 と chr 関数を使用します。
select chr(9) from dual;
他のヒント
Justin が彼のリンクで指摘したように、 set colsep
function SQLPlus コマンドを使用すると、各列に区切り文字を入力する手間が省けます。
ただし、タブ区切りの場合は、 set colsep Chr(9)
機能しません。
UNIX または LINUX の場合は、次を使用します。 set colsep ' '
一重引用符間のスペースは入力されたタブになります。
Windows の場合は、次の設定を使用します。
col TAB# new_value TAB NOPRINT
select chr(9) TAB# from dual;
set colsep "&TAB"
select * from table;
私が複数回盗んだある特定のスクリプトは、次の AskTom スレッドからのものです。 データをフラット ファイルに抽出する. 。SQL*Plus から手早く簡単に作成できるフラット ファイルが必要な場合。ただし、私は進行中のあらゆるプロセスに対して、Tom がそのスレッドで以前に投稿した DUMP_CSV 関数を好む傾向があります。
愚かな解決策を思いつきました。とてもうまくいきました。
解決
SELECT column1 || CHR(9) || column2 || CHR(9) || column3 ... ...
FROM table
背後にある原理
実際には、それはただの 文字列の連結.
CHR(9) -> ' '
列1 || CHR(9)||列2 -> concat(列1, ' ', 列2)
所属していません StackOverflow