sqlplus固有のスクリプトを含むsqlファイルがあります。ステートメント終了記号、ストアドプロシージャを実行するEXECなどJavaからsqlplusスクリプトを実行する簡単な方法
このスクリプトは、sqlplusを必要とせずにjava(jdbc)から実行する必要があります。
sql ant task/maven sqlプラグインは、異なるターミネータまたはEXECコマンドを処理できません。
sqlplusを実行しないで実行する良い方法はありますか?
sqlplus固有のスクリプトを含むsqlファイルがあります。ステートメント終了記号、ストアドプロシージャを実行するEXECなどJavaからsqlplusスクリプトを実行する簡単な方法
このスクリプトは、sqlplusを必要とせずにjava(jdbc)から実行する必要があります。
sql ant task/maven sqlプラグインは、異なるターミネータまたはEXECコマンドを処理できません。
sqlplusを実行しないで実行する良い方法はありますか?
私たちは同じ問題にぶつかりました...簡潔に言えば、それに対応する解決策はありません:AntまたはMavenソースを開くと、それらは単純な正規表現ベースのスクリプトスプリッタを使用しています。単純なスクリプトでは問題ありませんが、通常は失敗します。ストアドプロシージャ。
実際にPL/SQL用のANTLRパーサーがあります(例えば、Alexandre Porcelli's one)。これは非常に近いですが、まだドロップイン・ソリューションとして使用する準備ができていません。それはまだ醜いですが、私たちのスクリプトのほとんどのために働く -
は、我々は/
とEXIT
のようないくつかのSQLPLUSコマンドを認識しているyet another ad hoc splitterを書くことになりました。
私は2つのオプションが考えられます。あなたは、Runtime.exec()を使ってsqlplusにしたくないのです。もう1つは、セミコロンを押したときにファイルを読み込んで、行末のスラッシュを削除し、JDBCに送信することです。それが起こったときにバッチに追加することで、データベースへのトリップを減らすことができます。
これはまさに私がやろうとしていることですが、ファイル全体を小さな部分に分割する優れたSQLPLUSのようなパーサーが必要です。 /またはで簡単に分割。文字は機能しません –