• 締切済み

SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について

k_o_r_o_c_h_a_nの回答

回答No.2

パラメータに・・ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS と書く場合、 各フィールドが、”で囲まれている必要があります。 そして、”を文字として扱いたい場合は、””と書くルールになっています。 ということで、パラメータの記述から見たデータの表現が不適切なので エラーになっています。 第3フィールドの””文字列,文字列””は、どのように扱いたいのでしょう? 「””文字列,文字列””」と登録したいのですか? 「”文字列,文字列”」と登録したいのですか? 「文字列,文字列」と登録したいのですか? たまたま最終フィールドなので、場合によっては何とかなるかも知れません。

tetuinu0
質問者

補足

ご回答ありがとうございます。 「”文字列,文字列”」と登録したいのです。 色々試行錯誤した結果、「","」を区切り文字に指定、囲み文字は無しで data1 CHAR "SUBSTR(:data1,2)" のような感じで 第1フィールドの最初のダブルコーテションと第3フィールドの最後のダブルコーテーションを 削除することで、とりあえずエラー回避には成功しました。。。 しかしあまりスマートな方法とは思えない為、 何か良い回避方法があれば教えていただけると助かります。

関連するQ&A

  • BAT処理でCSVデータのインポート

    よろしくお願いしますm(__)m 昨日から調べて作ってみたのですがうまく動かず、 MYSQLが強制終了してしまうこともありました(T_T) 疲れました・・・ ※test.batに以下の内容を書きました c:\mysql\bin\mysql -u **** -p**** < test.sql ※test.sqlに以下の内容を書きました LOAD DATA INFILE "c:\mysql\test.csv" INTO TABLE 商品管理.商品単品 FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY "" ESCAPED BY "\\" LINES STARTING BY "" TERMINATED BY "\n" ※test.csvはカンマ区切りになっています。 ファイルは【test.bat】【test.sql】【test.csv】とも c:\mysqlに置いています。 この状態でtest.batを実行するとDOS窓が一瞬現れて消えて しまいます。 間違っているところやヒントなどあれば教えてくださいm(__)m

    • ベストアンサー
    • MySQL
  • csvデータ ダブルクォーテーションを追加したいんです

    csvデータに項目囲み文字がダブルクォーテーションを追加したいのですがどなたかやり方教えて下さい。宜しくお願いします。

  • SQLLOADER

    いつも世話になっています。 SQLLOAERでTABLEにデータをロードさせたいのですが SQL*Loader-350: 行64に構文エラーがあります。 ","または")"ではなく"("が見つかりました。 とエラーになりロードすることができません。 CTLファイルは FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS ( AAA, bbb, ccc, ccc(ddd), ) このような記述になっています。 おそらくccc(ddd)の「括弧」が原因だと思うのですが解決方法が分かりません。 どなたかご教授願います。

  • ACCESS・VBA・CSVファイル取込みについて

    ダブルコーテーション囲みのCSVファイルの取り込みが項目が増えてレイアウトが変わったためか、うまくいきません。コードはシンプルな一般的なものです。エラーメッセージで”○”は項目に含まれませんといったメッセージが表示されます。とあるソフトからCSVでアウトプットしてACCESS側ではインプットとして使用したいという目的です。

  • SQL*Loaderをダイレクトモードで実行

    するにはどうしたらいいのでしょうか? 例えば以下の場合にダイレクトモードでSQL*Loaderするにはどうしたらいいのでしょうか? sqlldr sato/secret control=x.ctl ただし x_table: create table x_table(i number,s varchar(99)); x.ctl: LOAD DATA INFILE 'x.csv' APPEND INTO TABLE x_table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS ( i,s ) x.csv: 1,"it is iti." 2,"it is ni." 3,"it is san."

  • VB6でCSVの取込をする

    VB6.0 でCSVの取り込みをしています。 Dim objFso As FileSystemObject Dim objTso As TextStream Dim データ As Variant Dim stArrayData() As String Set objFso = New FileSystemObject Set objTso = objFso.OpenTextFile(取込パス, ForReading) データ = objTso.ReadLine '配列に格納 stArrayData = Split(データ, ",") 'データの取得 データの取得 = stArrayData(0) stArrayData(0)で、データが取得できますが、 ダブルコーテーションが付加された状態で取得がしたいのですが、できません。。 今は、「000」で取得しているのを、 「"000"」で取得したいのです。 なお、取込むCSVをテキストで開くと、 ダブルコーテーションはついていません。 また、そもそも、取込む際に、ダブルコーテーションを付加する方法があるのでしょうか? それとも、取込んだ後に、ダブルコーテションを付加するのでしょうか? ご教授宜しくお願いします。

  • ORA-00917エラーが発生する

    SQL*Loaderを使用してCSVファイルをテーブルにロードしたいのですが、 「ORA-00917 カンマがありません」というエラーが発生してしまいます。 制御ファイルやデータファイルのどこに問題があるのでしょうか。 ご教授願います テーブル定義 テーブル名 TB_HOGE ID varchar XML_DATA XMLType INS_YMD DATE USER VARCHAR CTLファイル OPTIONS(  ERRORS = 0 ) LOAD DATA CHARACTERSET UTF8 INFILE '/temp/foo/data.csv' INTO TABLE TB_HOGE APPEND XMLType(XML_DATA) FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS (ID, XMLFILE FILLER CHAR, XML_DATA lobfile( XMLFILE ) terminated by EOF, INS_YMD "TO_DATA( :INS_YMD, 'YYYYMMDD')" USER) csvファイル data.csv ”No001","/temp/foo/xml/data1.xml","20150320","user1" ”No002","/temp/foo/xml/data2.xml","20150320","user1" よろしくお願いします。

  • CSVファイルへの文字列データの書き出しについて

    OS:WindowsXP、Excel:2003 です。 Excelマクロ(VBA)で、あるデータをCSVファイルに出力しているのですが、 文字列型(String)を書き出すと、必ずダブルクォーテーションで囲まれます。 CSVへ書き出すときは、そういう仕様になっているということは分かったのですが、 処理の都合上、どうしてもダブルクォーテーションで囲まずに書き出ししたいと思っています。 そういう場合にはどのようにすれば良いのか教えて下さい。 ちなみに、書き出しは「Write」を使っています。

  • SQLローダーについて

    カンマ区切りで""で囲まれたCSVファイルがあります。 例) "1","東京","おとこ","山田太郎","","","" このデータをOracle 9iデータベースにinsert、updateするプログラムをVBで書いたのですが パフォーマンスが悪いのでSQLローダーでやりたいと考えています。 更新テーブルはひとつなのですが、"東京"なら1、"大阪"なら2、"福岡"なら3というようにデータを突っ込む前に比較・変換する必要があります。 このような場合でも、SQLローダーって使えるんでしょうか? よろしくお願いします。

  • MySQLでCSV出力したい

    MySQL初心者です。 テーブルから抽出したデータを CSVにてエクスポートしたいです。 SELECT * FROM tbl_employee INTO OUTFILE "/ttt.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\r\n"; これだとフィールド名がエクスポートされないという現象が起こります。 また、エクスポート先なのですが、 デスクトップとかにしたいのですが、 設定の仕方がよくわかりません。 ネットで調べたのですが、限界でした。 まだまだ初心者なもので よろしくお願いいたします