コンパイルエラー:ソースコードが気に入りません。
4年生プログラマの日々思ったことを書き残す場所。 バグがッ!無くなるまでッ !帰宅することを許可しないッ!

好きな言葉は慇懃無礼です

久しぶりなプログラマな話題。
 
sqlの改行コード
Windows 系 : CR + LF
CR:CHR(13)
LF:CHR(10)
 
select replace(dummy, CHR(13)||CHR(10), ' ') as "改行抜きテスト項目" from dual
↑でdbに格納されているテキストデータを改行無しで抜き取れます。
 
impコマンドで何回やってもCSV読み込みに失敗したため
別な方法を探していたら下記のような方法でcsvをsqlで取り込めるみたいです。
ついでにdbからcsvの方法も。
 
-- import.bat --
sqlldr id/pass@sev control=c:\imp.ctl log=c:imp.log
----
 
-- imp.ctl --
load data
infile 'data.csv'
into table MasterTable
FIELDS TERMINATED BY ','
( name char(256) age
)
----
 
-- export.bat --
SQLPLUS @c:\export.sql
--
 
-- export.sql --
/* 列名表示無 */
set heading off
/* ヘッダーを非表示 */
set pagesize 0
/* メッセージ非表示 */
set feedback off
/* 行の後ろのスペースを消去 */
set trimspool on
/* 行に表示する文字数を設定 */
SET linesize 100
/* コンソールメッセージを非表示 */
set echo off
 
CONNECT id/pass@sev
 
SPOOL c:\data.csv
 
select name ,age
from dual
/
 
SPOOL OFF
 
EXIT
----
 
ちなみに「データ・ファイルのフィールドが最大長を超えています」というエラーは
(255バイトを超えるものに対して)ctlファイル内にサイズ指定が無い場合に発生します。

コメント

コメントの投稿













管理者にだけ表示を許可する

トラックバック

プロフィール

Author:debug
新人プログラマが思ったことを忘れないよう書いて置く場所。

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

debug回数

おまえは今までに行ったデバッグの回数をおぼえているのか?

ブロとも申請フォーム

ブログ内検索

RSSフィード

リンク

Powered By FC2ブログ