2017-02-26 25 views
0

私は動作する必要のある複数のデータベース設定を持っており、どちらも同じ方法で動作しない独自のbcpバージョンを持っています。 Plusは両方とも%PATH%にあり、Sybase SQLはMS SQLのexeの前にリストされているので、コマンドラインから "bcp"を呼び出すと、常にSybase exeにヒットします。Sybase BCPとMS SQL BCPの比較

まず、バージョンは "異なる" です:

SybaseのBCP: SybaseのCTBCPユーティリティ/ 15.0/P-EBF17890 ESD#24/PCインテル/ BUILD1500-123/OPT /木曜5月13日02: 45:43 2010 (Adaptive Server Enterpriseの/ 15.7/EBF用23008 SMP SP130/P/RS6000/AIX 6.1/ase157sp13x/64分の3819ビット/ FBO /土8月23日午前2時49分06秒2014)

MS SQL BCP: バージョン:11.0.2100.60 (SQL 2008 R2および2012 SP3 dbsを照会するクエリ)

彼らは間違いなくファイルへの出力を同じ方法で処理し、各ショーのドキュメントを処理しません。私がbcpで読んだものは、bcpはSybaseとMS SQLの間で同じように動作するはずですが、Sybase bcpは同じ方法でクエリアウトをサポートしていないため、MS SQLへのqueryout呼び出しのために完全なMS SQL bcp.exeパスを呼び出さなければなりません。

私のプロセスでは、Sybase DBとMS SQLデータベースにヒットした複数のクエリを呼び出してステージングDBにデータを出力するため、SybaseとMS SQL bcpを区別する必要がありますか、 1つは問題なし?もしそうなら、どちらが「正しい」ものなのですか(ここでは議論を呼び起こそうとはしません)。また、バージョン番号が "最新の"ものであることを知っていることと関係があることは何も分かりません。

+1

あなたはいつも区別する必要はありません。彼らが今完全に働いていても、将来のアップグレードで変更される可能性があり、それを許可する必要があります。 –

答えて

3

MS SQL Serverは、1994年のSybase ASE(Sybase SQL Serverと呼ばれていました)と同じですが、ゆっくりと移動し始めました。したがって、bcpの概念はまだそこにありますが、同様ですが、詳細は異なります。 一方、これらのデータベースのクライアントツールを交換することはできません。マイクロソフトはTDSプロトコルを変更して、クライアントを他のベンダーのデータベースに接続することはできません。

同じ名前の2つの実行可能ファイルの間に衝突がある場合、一般的な解決策には、(i)実行ファイルのパス名を明示的に指定すること、(ii)実行可能ファイルのパス名を明示的に指定すること、実行ファイルの1つ。 YMMV。

+0

おかげさまで、私はそれらを両方とも使用する必要がなくなることを期待していましたが、呼び出されるときにそれぞれに明示的なパスを使用し続けます。 –

関連する問題