SQLServer2005を使用しています。
テーブルのデータをCSVファイルでエクスポートしたいのですが
ネットで調べてもどうもうまくいかないので質問させてください。
サーバー名:PCSQL、ユーザ名:User、パスワード:PASS
として以下のようなプログラムを実行したのですが、
--------------------------
EXEC master..xp_cmdshell 'bcp "select * from データベース名.dbo.テーブルA"
queryout c:\log.csv -c -t"," -r"\n" -SPCSQL -UUser -PPASS'
--------------------------
以下のような結果が出てくるだけでCSVファイルが作成されません。
使用法: bcp {dbtable | query} {in | out | queryout | format} datafile
[-m 最大エラー数] [-f フォーマット ファイル] [-e エラー ファイル]
[-F 先頭行] [-L 最終行] [-b バッチ サイズ]
[-n ネイティブ型] [-c 文字型] [-w UNICODE 文字型]
[-N text 以外のネイティブ型を保持] [-V ファイル フォーマットのバージョン] [-q 引用符で囲まれた識別子]
[-C コード ページ指定子] [-t フィールド ターミネータ] [-r 行ターミネータ]
[-i 入力ファイル] [-o 出力ファイル] [-a パケット サイズ]
[-S サーバー名] [-U ユーザー名] [-P パスワード]
[-T 信頼関係接続] [-v バージョン] [-R 地域別設定有効]
[-k NULL 値を保持] [-E ID 値を保持]
[-h "読み込みヒント"] [-x XML フォーマット ファイルを生成]
NULL
そもそもSQLにはWindows認証でログインしているので
ユーザーIDとかいらないのでしょうか?(ユーザーID,PASSを抜いても同じ結果となってしまいますが・)
SQL初心者で申し訳ないのですがご教授宜しくお願いします。
No.1
- 回答日時:
途中で改行してはだめですよ。
回答有難うございます。
ナント、改行してはダメだったんですね。
しかしこんなエラーがでてしまいました。
-----------------------------------------------
SQLState = 08001, NativeError = 2
Error = [Microsoft][SQL Native Client]名前付きパイプのプロバイダ : SQL Server への接続を開けませんでした [2].
SQLState = HYT00, NativeError = 0
Error = [Microsoft][SQL Native Client]ログイン タイムアウトが時間切れになりました
SQLState = 08001, NativeError = 2
Error = [Microsoft][SQL Native Client]サーバーへの接続確立時にエラーが発生しました。接続先が SQL Server 2005 である場合は、既定の設定では SQL Server がリモート接続を許可していないことが原因である可能性があります。
NULL
----------------------------------------------
どうもサーバーとうまく接続できていないみたいです・・・
クエリを開くときにサーバーとは接続しているのに
クエリ実行時にはサーバーと接続されていないのでしょうか?
単純にselect * from ~で出た結果をCSVにエクスポートしたいだけなのですが1000回以上行う必要があるんでとても手動ではできません。
現状エクセル側からSQLのデータを吸い取ってCSVにしてるんですが物凄い時間がかかる為、出来ればSQLServerから直接CSVファイルにしたいのですが簡単な方法はないでしょうか。
(コマンドプロンプトからbcpコマンドでやろうと思ったのですが同じくうまくいきませんでした;)
No.2
- 回答日時:
BCPが自動では一番楽な方法でしょう。
Windows認証しているのなら、
bcp "select * from データベース名.dbo.テーブルA" queryout c:\log.csv -c -t"," -r"\n" -SPCSQL -T
でどうですか?
回答有難うございます。 ですがうまくいきません
同じエラーが出てしまいました
------------------------------------------------------
SQLState = 08001, NativeError = 2
Error = [Microsoft][SQL Native Client]名前付きパイプのプロバイダ : SQL Server への接続を開けませんでした [2].
SQLState = HYT00, NativeError = 0
Error = [Microsoft][SQL Native Client]ログイン タイムアウトが時間切れになりました
SQLState = 08001, NativeError = 2
Error = [Microsoft][SQL Native Client]サーバーへの接続確立時にエラーが発生しました。接続先が SQL Server 2005 である場合は、既定の設定では SQL Server がリモート接続を許可していないことが原因である可能性があります。
NULL
試しにコマンドプロンプトでもやってみたんですが同じエラーメッセージが出てきました。
No.3ベストアンサー
- 回答日時:
bcpというのはもともとコマンドラインから実行するユーティリティです。
クエリアナライザからxp_cmdshellで実行すると、バッチコマンドとしてbcpが実行され、今のクエリアナライザの接続とは別にSQL Serverに接続しようとします。
それがうまくいっていないのですが。
対象のSQL Serverは別マシンにあるんですか?
もしそうなら、サーバでマシン名を「localhost」にしても同じことになりますか?
SSMSから接続するときもPCSQLという名前で接続していますか?
PCSQLはSQL Server認証も許可されていますか?
実際のサーバ名は「PCSQL\AAA」のように「\」マークがついているということはありますか?
コマンドラインから「cliconfg」と打って開くユーティリティの別名タブに何か登録してありますか?
ご回答有難うございます。
SQLServerは別のマシンにあります。
サーバーに接続する際は
----------------------
サーバーの種類:データベースエンジン
サーバー名:PCSQL\sql2005th (sql2005th⇒サーバー名)
認証:Windows認証
----------------------
で接続しています。
と、ここで気付きました。サーバー名は[マシン名\サーバー名]を入れなきゃダメなんですね;
以下をコマンドプロンプトで流したところ
bcp "select * from データベース名.dbo.テーブルA" queryout c:\log.csv -c -t"," -r"\n" -SPCSQL\sql2005th -T
結果が出来ました。有難うございます!
ただ、列名が出てこず、1行目からデータが入っているのですが
列名を入れることは無理なのでしょうか?
質問ばっかりでスイマセン!宜しくお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスのテーブルからエクス...
-
Accessのリンクテーブルについて
-
accessのエクスポートエラーに...
-
bcpによる、テーブル→CSVファイ...
-
アクセスのデータのエクスポート
-
エクセル
-
「マスタ」と「テーブル」の違...
-
ACCESS2007 フォーム 「バリア...
-
2つのテーブルから条件に一致...
-
ビューで引数を使いたい
-
PhpMyAdminで作成して実行せよ...
-
ACCESS 一番最新の日付の金額...
-
accessテーブル作成クエリを実...
-
Accessにインポートしたら並び...
-
SQLServer + PHP で直近に追加...
-
重複するキーから一番古い年月...
-
SELECT時の行ロックの必要性に...
-
2つの項目が重複するレコード...
-
数百万件レコードのdelete
-
mysql IN句に1データだけ指定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
accessのエクスポートエラーに...
-
Accessのリンクテーブルについて
-
bcpインサートでのフォーマ...
-
エクスポート時の改行コードに...
-
ACCESSでのエクセルインポート...
-
AccessでCSVインポートのゼロサ...
-
SQL Server のデータをCSVファ...
-
SQLServer2005でフラットファイ...
-
既に使用されているので、使用...
-
symfowareのSQL文in句をバッチ...
-
MS-SQLプロシージャでファイル...
-
SybaseのBCPでファイル上書き
-
アクセスのテーブルからエクス...
-
bcpによる、テーブル→CSVファイ...
-
sqlite(spatialite_gui)での...
-
SQLServer2005 クエリ結果のフ...
-
スクリプトファイルの一括実行
-
ACCESSでのCSVデータの自動取り...
-
DBMAGICのプログラム解析
-
CSVファイルのインポートについて
おすすめ情報