• 締切済み

sybase bcpでのデータインポートについて

UNIXでサイベースのbcpを使用し、テーブルへデータのインポートを行おうとしています。 この際、データが""(ダブルコーテーション)で括られていると、ダブルコーテーションもデータとしてテーブルに格納されてしまいます。 ダブルコーテーションはデータとして認識させないオプションはあるのでしょうか。 検索してみましたが、該当するような文献が見当たらなかったので、質問させていただきました。 ご存知の方がいらっしゃいましたら、よろしくお願いします。

みんなの回答

回答No.1

sybaseは使ったことがないのですが・・ 親類縁者のSQLserverのbcpユーティリティだと、 フォーマットファイルで、前後のデミリタ文字を ," と ", にすることで対応できるような気がします。 試してないので、真偽は不明ですが。

reo99999
質問者

お礼

なるほど!! そういう手がありましたね。 ありがとうございます!! 試してみます。

reo99999
質問者

補足

そういえば・・・ この方法だと、レコードの一番最初の「"」と一番最後の「"」はやっぱり文字列として認識してしまいそうですね。 どなたか、別の方法をご存知の方がいらっしゃいましたら、よろしくお願いします。

関連するQ&A

  • BCPでCSVファイルをインポート(MSDE)

    EXCELで作成したCSVデータをMSDEへインポートする方法を勉強しています。 インポートにはBCPを使用しています。 簡単なテーブルへのインポートはできたのですが、次の方法がわかりません。 1. あるフィールドにはMSDEのNEWID()関数でユニークデータをセット 2. 他のフィ-ルドにはCSVから読み込んだデータをセット 1と2を同時に行うことは、BCPで可能なのでしょうか? よろしくお願いします。

  • SQLSERVER データインポート

    SQLSERVER2008で別のデータベース1からbcpコマンドでバックアップしたdatファイルがあります。それを別のサーバーのデータベース2に インポートしたいのですが、データベース2もSQLSERVER2008です。 (データベース2にはインポートするテーブルは作成済です。) bcpコマンドでインポートしようとすると、サーバーが見つからないかインスタンスエラーになってしまいできません。 そこでツールでインポートしようとしたのですが、 データソースをテキストでdatファイルのあるパスを指定して やったのですがこれも入りません。 どうすればインポートできますでしょうか? データベース2の方はwindows認証です。コマンドでcdで datファイル(table1.dat)がある階層まで下げてからこう入力しました。複写元 table1.dat→複写先 DB TESTのtable1へ bcp TEST.dbo.table1 in table1.dat -T -C -t bcp,ツールどっちでもいいのでインポートの方法を教えてください。

  • 改行を含んだデータのインポート

    SQL Server 2005 Developer Editionを使っています。 インポートについて、皆様の知識のご教授をお願いします。 (1)、(2)と二つありますが、どちらか一方の回答でも 構いませんので、よろしくお願いします。 (1)Excelインポートによる取込について まず、Excelにテーブルデータをエクスポートしました。 データには、改行されているものレコードもあります。 そのExcelファイルをエクスポートしたテーブルに インポートしようとすると、エラーが発生します。 また、改行されているデータのレコードだけを 手動でコピー&ペーストしても、貼り付けることが できない状態です。さらに、Excel上のデータを直接コピーし、 該当のレコードの箇所に張り付けても、1行目だけしか 貼付けができない状態です。 (2)テーブル間の改行を含むデータ移行について AとBという、テーブル名だけが異なり、列名やデータ型が 同じテーブルだとします。 ここで、BからAテーブルへデータ移行させる際に、 改行されているデータについても、正常に移行できるように するには、どういう手順を踏めばいいか教えて頂きたく思います。 Bテーブルの列を全てコピーし、Aテーブルに貼り付けても、 うまく貼り付けることができませんでした。 改行されているデータは、どうやったら、テーブルに インポートできるのかを教えて頂けないでしょうか。

  • "文字列"? > CSVデータをMySQLにインポート時テキストデータのフォーマット

    CSVデータをMySQLにインポートする時に、データの中にテキストデータ(文字列)があるとします。 データを正しくインポートする為に、文字列をダブルクォーテーションやシングルクォーテーションで囲む必要はありますでしょうか。 記憶は定かではありませんが、「PostgreSQLの場合、文字列をクォーテーションで囲むとエラーになる。MySQLの場合は逆で、文字列をクォーテーションで囲まないとエラーになる。」みたいな話しを聞いたことがあるような気がします。 どなたか、教えていただければ幸いです。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • PostgreSQL テキストファイルのインポートができません

    初めて質問させていただきます。どうかよろしくお願いいたします。 PostgreSQL8.4を勉強始めたばかりです。 エクセルの社員一覧シートをタブ形式でD:\TEST\TEST.txtに作成いたしました。 このデータを社員テーブルにインポートしたいのですが 氏名の項目で名字と名前の間に半角の空白があり インポートできません。 ダブルコーテーションで氏名を囲むとできるのですが テーブルの項目にダブルコーテーションが入ってしまいます。 テキストファイル ------------------------------ 番号 氏名 生年月日 1 山田 太郎 19610101 2 山田 花子 19610101 社員テーブル ------------------------------- 項目名 データ型 番号 INT 氏名 VARCHAR(100) 生年月日 INT PostgreSQLではPSQLを使用しております。 インポートでは、COPYコマンドを使用しております。 COPY 社員テーブル FROM 'D:/TEST/TEST.txt'; ご教授の程、よろしくお願いいたします。

  • インポートしたデータが検索でヒットしない

    登録名簿フォームにて コンボボックス→値集合ソース→クエリツールにて Noと名前と生年月日で情報を取ってくる検索ボックスを使用していました。 ある日インポートの機能を使用してインポートしたデータが その検索ボックスで引っかからないことに気付きデータを確認したところ 「確かにデータは格納されているけれども検索ボックスでは検索できない」 という現象になっていることが判明しました。 検索ボックスで対象データを検索した際のメッセージボックスには 「指定した項目はリストにありません。リストから項目を選択するか、リスト項目と同じテキストを入力してください。」 と出てきます。 名前を削除して再入力して保存してもNG コンボボックスを同じ条件で作り直してもNG クエリを使用したデータシートビュー等にはしっかりデータが出てくる そのためクエリツールにてテーブル参照部分をクエリ参照に作りかえたがNG ただし、 Noの検索窓もありますがそちらは問題なく使用できる。 何が原因なのかどうしてもわからずこちらに相談してみました。 もし何かヒントがありましたら是非お聞かせいただけると幸いです。 どうぞよろしくお願いいたします。

  • データのインポートの速度について

    mysqlの1個のテーブル(約1万行)をphpMyAdminでエクスポートしました。エクスポートは一瞬で終わりました。 それを再びphpMyAdminからインポートしようとしたのですが、データが重いらしくタイムアウトのエラーが出てしまいました。 sqlファイルを開いてみると、テーブルへのinsert文が約200行ずつのかたまりごとに区切られてしました。 きっとphpMyAdminの方で、エクスポートする時、「これくらいのかたまりずつ区切っておかないと、スムーズにインポートできなくてエラーになっちゃうよ」と気を利かせて区切ってくれているのだろうと思います。 仕方ないので、sqlファイルを「約200行ずつのinsert文」に分割して、phpMyAdminからインポートしました。 全部で1万行ほどのデータなので、50回ほどその作業を繰り返しました。 エクスポートはスムーズだったので、インポートがこんなに手間がかかるとは思っていませんでした。 最初にその1万行のデータをテーブルに読み込ませたのは、別のcsvファイルを load data infile したり、項目の並び順を入れ替えて insert したりするphpファイルを書いたのですが、さほど重くもなくスムーズに処理できました。 phpMyAdminを使わない方法の方が圧倒的に早い気がするのですが、大きいデータをインポートする際のスムーズな方法がありましたら、アドバイスいただけますでしょうか?

  • バイナリデータが入ったDMPファイルのインポート

    今DMPファイルのインポートを行った際、 ”ダンプ・ファイルをエクスポートしたダイレクト・パスには無効な列長が入っています” というエラーメッセージが表示されてしまい、インポートすることができません。 1つのテーブルのデータとしてバイナリデータが含まれているのでそれが原因だと思い、テーブル名指定でインポートを行いましたがエラーは回避されませんでした。 データごとむりであったとしても、せめてテーブル構造だけでも復元したいのですが・・・。 何か方法があったら教えてください。 ※パラメータのROWS=Yにしてテーブル名指定でインポートも無理でした・・・

  • テーブルのエクスポート・インポート

    SQL Server2005 を使用しています。 テーブルのインポート・エクスポートに関して質問があります。 今まで、Oracleを主に使用していて、「EXP」「IMP」コマンドを使用して DMPファイルを介して別PCのデータベース間でテーブルのやり取りをしていました。(DB上のテーブルすべてや特定のテーブルのみなど) 同様のことをSQL Serverで実現したく下記を試したのですが上手くいきません。 1.Management Studio で「タスク」→「データのインポート(エクスポート)」   フラットファイル、Excel、MDBファイルなど試したのですが、   これらの中間ファイルを介した際にデータ型が変わってしまい   元の型のまま戻せない。   Oracleの「DMP」ファイルのようなものには落とせないのでしょうか? 2.「bcp」コマンド   これに関しては、複雑でよくわかりませんでした。   もし、このコマンドで実現可能であれば、やり方を教えて下さると   助かります。 以上、ながなが書きましたが宜しくお願い致します。

  • ファイルメーカーのインポートのカスタマイズについて

    (1)データインポート時に番号や日付で同じデータかをチェックして該当するデータはダブリ用のテーブルに移動。 (2)ダブリではないデータは実テーブルにインポート (3)実テーブルとダブリ用テーブルを同時に開いて人の目でデータをチェックできる。 ・チェックしたデータを実データに上書きインポート。 ・チェックしたデータがダブリではないデータを実データに別のデータとしてインポート。 (4)上書きはすでにデータが入っているフィールドのみ上書きで空のフィールドに関してはデータを追加する。 (5)データの差分のみをインポートをかけるやり方。 上記のインポートをFMでできるのでしょうか? 若しくは上記の方法に近い方法でも構いません。 以上、ご教授のほど宜しくお願いします。