答えはノーだ。
しかし、いったいなぜ大量のデータを Java からサーバーに移動したいのでしょうか? (1) Java はそのように設計されていないため、非常に遅くなります (2) ネイティブの bcp または C+bcp または perl+bcp または任意のシェル コマンド + bcp は、その周りに円を叫び、とにかくそれを置き換えます。ODBC や JDBC 経由で bcp を実行したいようなものです。
私たちはマズローのハンマーから離れ、仕事に適したツールを使用する必要があります.
詳細、コメントへの対応:
ASE サーバー (クライアント サーバー スタイル) に接続する通常のプログラムは、提供されている Open Client Library を使用します。これはネイティブで、TDS パケットを効率的に移動します。接続は、一般的に入手可能な 1 インチのガーデン ホースです。C、C++、COBOL、Perl、および PowerBuilder で記述されたプログラムは、このトランスポートを使用します。
ODBC (および ODBC の上に構築されているため JDBC) は、1 ミリのホースを使用してサーバーに接続する簡単な方法です。これは、Excel を使用して ASE テーブルから直接チャートを描画するなど、データ転送速度が関係ないタスクには十分に適しています。かなりの量のデータを移動する場合や、データ サーバーへの通常のアプリ アクセスにはまったく不十分です ([1] が利用可能であるという事実を「プログラマー」が知らない場合を除く)。
.
Java には [1] がなく、この [2] トランスポートに限定されます。
bcp は、ベンダーが提供する (独自に存在する) ユーティリティ PROGRAM であり、サーバーにより緊密に接続します。これは「クライアント API の特別なビット」ではありません。「嘘やごまかし」は関係ありません。すべての制約は、タスクを実行する DBA によって指示されます。接続は 2.5 インチの消防用ホースで、一般には公開されていません。大量のデータを高速で移動できるように設計されています。サーバーと同じホストで使用すると、ホースがネットワークを介して網状にならないため、データがさらに高速に移動します。
かなり後になって、ベンダーは bcp 機能をライブラリ (用語で言えば API) として利用できるようにしたため、合理的に設計されたコンパイラから呼び出すことができます。C、C++、COBOL、および Perl はそのようなものであり、PROGRAMS を生成するため、コードから直接このライブラリにアクセスできます。接続は同じ 2.5 インチの消防ホースですが、層が追加されているため、最大速度は 2 インチの消防ホースです。
(これが完全なリストであることを期待する読者への注意: ここでは詳しく説明していないオプションが他に 2 つあります。それらはサーバー間であり、このスレッドには関係がないためです)。
Java PROGRAMS は現在、ASE サーバーへの接続が 1 ミリメートルに制限されているため、bcp API を Java に提供しても意味がありません (2.5 インチの消火ホースがネットワークを介して網状になり、FLOW が 1 になるだけです)。ミリ)、それはばかげた企業です。多くの組織が何百万もの資金を Java に注ぎ込んだにも関わらず、Java のかなり長い進歩の過程で、ドリップ アンド ドロップを動かす消防署を提供するためにお金を費やした組織が一つもなかったのには理由があります。
ダックスフンドからグレイハウンドのスピードを得ることはできません。競馬場で訓練しても意味がありません。耳元で約束をささやくのをやめることができます。
第二に、Java は大きな (ソース) データセットを効率的に処理できません。そのように設計されていません。したがって、たとえJDBC の絞殺が解除されたとしても (たとえば、ネイティブの Open Client Library が実装された場合)、C、C++、COBOL、Perl、PB ほど高速にデータを移動することはできません。1 インチのホースで細流 (1/4 インチ?) でデータを移動します。したがって、その場合でも、bcp 機能を Java ライブラリに提供するのはばかげています。Java (他の優先順位を念頭に置いて設計された) に大規模なデータ転送機能が付与されている場合、これは価値があります。
Java、Java、および Java の考え方から抜け出し、ジョブに適切なツール (プログラム) を使用することが役立つ場合があります。あなたが Java の「プログラマー」である場合、少なくとも、プログラミング言語の機能と制限、および利用可能なライブラリについて理解する必要があります。元の質問はそれを完全に無視していることを示しているため、修正した投稿でそれを提供する必要がありました。
Java に限定されていないプログラマーは、大規模なデータ ソースがどこにあるかを考えます。ネットワーク間のデータ転送を最小限に抑えます。どのようなプログラムがすでに作成されていて、それを使用できるかを考えてください (地球の他の部分から隔離して独自に作成するのではなく)。そしてそれらを使用します。
最後に、理解のために、いくつかのライブラリで bcp 機能を取得して実装したとしても、「プログラム」を現実の世界に配置すると、合理的な DBA はそのトリクル速度のデータ転送のためにそれを却下し、bcp を使用します。代わりに消火ホースを使用してください。