2017年05月24日

項目の中に改行のあるcsvデータをDBにロードしたい。

項目内容がSQLの構文を収録したものだったりして。改行もあればカンマもある。まーどうしましょう。
(囲み文字はダブルクォーテーションで統一。まあそれくらいは統一してていただかんと。)

さあ、どうしましょう。何にロードするにしても、何を使用してロードするにしても、改行を以って 1レコードのエンドとするのがデフォルトです。

先に 1レコード 1行ずつ に まとめとくのがいいでしょうね。改行が入っていることに重要な意味があるのでないなら。



以降、

[テキストエディタ (今回、Sakura Editor) を使用しての、整形の手順]
(ざっとした手順を言うなら、改行を半角空白に一斉置換するんですけど、それによって起きる不都合もあるので それをクリアしつつ、て感じです。)

(前提。今回のバーイ、各レコードは必ず「",,,,」で終わっているものとします。) (エンドのシルシはケースバイケース。ですので、そこは読み替えつつ、で、お願いします。)

(注意 !! 置換する際には、「正規表現(E)」にチェックを必ず入れてください。)



1.
改行コードを統一させます。(改行と言っても、「CR (\r\n)」 と 「LF (\n)」 とが混ざっている場合がございます。)
1-1
当該csvを「Sakura Editor」で開く。
1-2
編集のまねごとをする。(どこでもいい適当なトコで全角空白でも加筆。しかるのち その全角空白を削除。)
1-3
「上書き保存」ボタンを押して「改行コードを統一しますか」的なメッセージが出たら「CR (\r\n)」に統一。

2.
SQLのコメント句を半角空白に置換します。
(コメント句には 2種類あります。
一つには、「/*」と「*/」とで囲んであるもの。こちらは問題ありません。放置します。
もう一つは、「--」で始まるもの。こちらは問題です。もし改行が半角空白に置換されたら「--」以降がぜーんぶ最後までコメントということになってしまいます。)
2-1
「置換前」に「--+",,,,」
「置換後」に「"....」
(項目内容がコメント句で終わっている箇所の、コメント句 削除)
2-1
「置換前」に「--+\r\n」
「置換後」に「 」
(コメント句 (「--」で始まって改行で終わっている文字列) を半角空白に置換)

※ ここでは「--」方式のコメント行は半角空白に置換していますが、「/*」〜「*/」方式に置換する、としても よいです。

3.
改行を半角空白に置換します。
「置換前」に「\r\n」
「置換後」に「 」(半角空白)

4.
各レコードの終了位置に改行を入れます。
「置換前」に「,,,,」
「置換後」に「,,,,\r\n」

5.
タイトル行 (1行目) と明細行 (2行目) との間に、改行を入れます。
(ここの部分は、目で検出して、手で改行を入れる。)

おまけ。
(項目長は 4000 byte まで、という制限があるし、SQLはそれ以上に長い場合があるので、少しでもデータを活かせるため、縮小できるところは縮小したいとおもいます。)

6.
「置換前」に タブ
「置換後」に「 」(半角空白)

7.
連続した2つ以上の空白を 1つの空白に置換します。
「置換前」に「 {2,}」
「置換後」に「 」(半角空白)



さて、1レコード1行のフォーマットに整形が完了しましたら、DBにロードしましょう。
ちなみに、
4000 byte 超える項目があるレコードは、
「SQL Developper」のインポート機能ですと、エラーとなり取り込んでくれません。
「A5:SQL MK-2」ですと、3999 byte でブチ切られて、ではございますが、取り込んでくれます。
(パラメータとかの指定でも違ってくるんでしょうけど、デフォルトでは、ということです。)



[情報きぼんぬ]

・なんにも気にすることなく あるままの状態でDBにロードしてくれる便利なツールをご存知というカタ。情報、ください。
・既存のツールでも、適切にパラメータ設定をするなどのことにより実現できるのかも知れません。ご存知のカタ、ノウハウ、ください。



[SQL*Loaderの使い方〜CSV等を高速に取り込む | Oracle オラクルエンジニア通信 - 技術資料、マニュアル、セミナー Blog]
https://blogs.oracle.com/oracle4engineer/sqlloadercsv



[関連する日記たち]
 ↓ 
[テーマ「コンピュータ」のブログ記事一覧]
http://hinden.at.webry.info/theme/c80af9e721.html

[[PL/SQL] 大量のSQL構文の記述ミスを一気に点検したい。]
http://hinden.at.webry.info/201705/article_28.html

反復学習ソフト付き 正規表現書き方ドリル (WEB+DB PRESS plus)
技術評論社
杉山 貴章

amazon.co.jpで買う
Amazonアソシエイト by 反復学習ソフト付き 正規表現書き方ドリル (WEB+DB PRESS plus) の詳しい情報を見る / ウェブリブログ商品ポータル


hinden Takahashi, Hideki ひんでん 高橋 秀樹 | facebookひんでん (ユリコ暴走)(@Gemini_hinden)さん | Twitter


hinden Takahashi, Hideki / ひんでん 高橋 秀樹--------
about me
--------
hinden Takahashi, Hideki
ひんでん 高橋 秀樹
http://hinden.at.webry.info/200002/article_1.html

[events]
イベント情報一覧
http://www2u.biglobe.ne.jp/~hinden/live/
posted by hinden (まほまほファミリー) at 00:41| 東京 ☀| Comment(0) | TrackBack(0) | コンピュータ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/450170895
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック