DB に改行コードを登録する方法について

Avatar
tkt777
お世話になっております。

現在 Web で入力されたデータを DB に登録するスクリプトを作成しているのですが、
そのデータに改行コードが含まれたデータがあり、そのデータを登録する際に、
改行コードがうまく登録されず困っています。

DB に改行コードを登録する方法があればご教示ください。

この記事は役に立ちましたか?

0が役に立ったといっています

コメント

  • Avatar
    kirschbaum
    コメントアクション Permalink
    改行コードを登録する方法は DB によって異なります。
    DB の開発元やフォーラムなどで改行コードを登録する方法を確認してみてはどうでしょう。


    手元に MySQL と PostgreSQL があったので、それぞれ確認してみると、
    MySQL は改行を \r\n でデータに含めれば登録できるようでした。
    PostgreSQL は \r\n を入れるだけでは文字列として扱われ、文字列を囲う
    シングルクォートの前に「E」を入れる必要があるみたいです。

    なので、SQL を以下のように書けばいいと思います。

     ・MySQL の場合
      INSERT INTO testdb.test (col1,col2) VALUES ('test','aaa\r\nbbb');
     ・PowtgreSQL の場合
      INSERT INTO test (col1,col2) VALUES ('test', E'aaa\r\nbbb');

    DataSpider では正規表現の置換で、改行コードを「\r\n」に置換、
    PostgreSQL であれば、先頭に「E」をつけるという対応ができますね。
    0
  • Avatar
    kyaz
    コメントアクション Permalink
    連携処理だとプラットフォームの改行コードの違いで自分もよくはまることがあります。


    参考になるか分かりませんが、自分は意図した連携処理結果が得られなかった場合、以下のように原因の一次切り分けを行うようにしています。いづれかに切り分けできれば、さらにブレークダウンした切り分けを行っています。

    ・連携元から意図したデータが渡されているか
     →スクリプトの連携元のデータ取得時点でCSVやXMLアダプタでファイル出力してみる
    連携先へ書き込むコンポーネントへ意図したデータが渡せているか
     →書き込みコンポーネントをCSVやXMLアダプタに差し替えてファイル出力してみる
    連携先システムの制限や設定の問題ではないか
     →想定するデータを他のツールなどで連携先システムへ直接書き込んだ結果と比較してみる

    0

ログインしてコメントを残してください。