none
BCP実行時のエラー RRS feed

  • 質問

  • 以下のコマンドでテーブルをバックアップしようとしたところエラーとなってしまいます。

    bcp DB.dbo.TABLE_A out "D:\work\TABLE_A.txt" -c -t, -S localhost -T

    以下エラーメッセージ

    メッセージ 102、レベル 15、状態 1、行 1
    '.' 付近に不適切な構文があります。

    テーブル名をクォーテーションしてみると

    bcp "DB.dbo.TABLE_A" out "D:\work\TABLE_A.txt" -c -t, -S localhost -T

    以下のようなエラーに変わります。

    メッセージ 179、レベル 15、状態 1、行 1
    ストアド プロシージャに定数を渡すときに OUTPUT オプションは使用できません。

    構文が間違っているのでしょうか?


    • 編集済み hiro5665 2020年2月5日 5:32
    2020年2月5日 1:53

すべての返信

  • 同じようなコマンドを実行してみましたが、正常に完了しますね。コマンドの中に2バイト文字が入っていたり、不正な文字コードが含まれているのかもしれません。メモ帳などで手入力でコマンドを入力してみてはどうでしょう。

    bcp DB1.dbo.tab1 out "c:\temp\tab1.txt" -c -t, -S localhost -T

    bcp "DB.dbo.TABLE"_A out "D:\work\TABLE_A.txt" -c -t, -S localhost -T のコマンドは、"DB.dbo.TABLE"_A の部分を "DB.dbo.TABLE_A" 修正すると良いと思います。

    2020年2月5日 5:21
  • 例に書いたコマンドは確かに2バイト文字は入っていませんでしたが、

    実際にはDB名に日本語の2バイト文字が使用されています。

    これが原因でしょうか?

    2バイト文字が含まれるとBCPできないのでしょうか?

    2020年2月5日 5:30
  • 私の環境では、以下のコマンドも正常に完了しますね。そのため、データベース名以外のところで不正な文字コードが含まれている、もしくは2バイト文字にできない文字(ダブルコーテーション、カンマ、スペースなど) が存在しないかを確認してみるとよいかもしれません。

    bcp [テスト].dbo.tab1 out "c:\temp\tab1.txt" -c -t, -S localhost -T

    2020年2月5日 5:49
  • hiro5665さん、こんにちは。フォーラムオペレーターのクモです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    私も同じようなコマンドを実行してみましたが、正常に完了します。
    ストアドプロシージャで実行しましたか?
    すべてのスクリプトを教えてください。

    ご質問について同様の文章があります。ご参照ください。

    どうぞよろしくお願いいたします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2020年2月12日 8:07
    モデレータ