sql >> データベース >  >> RDS >> Oracle

Javaからoraclesqlスクリプトを実行します

    少し前に同じ問題が発生し、解決策を探しているときに何度か質問にぶつかったので、私はあなたのおかげだと思います。これまでの私の発見は次のとおりです。

    簡単に言うと、そのための準備が整った解決策はありません。 または Maven ソースでは、単純な正規表現ベースのスクリプトスプリッターを使用していることがわかります。これは、単純なスクリプトには適していますが、通常は失敗します。ストアドプロシージャ。 iBATIS、c5dbの移行などについても同じことが言えます。

    問題は、複数の言語が関係していることです。「SQLスクリプト」を実行するには、(1)SQL、(2)PL / SQL、および(3)sqlplusコマンドを処理できる必要があります。

    sqlplusを実行しています それ自体が実際の方法ですが、構成が混乱するため、このオプションを回避しようとしました。

    PL / SQLには、AlexanderPorcelliのもの などのANTLRパーサーがあります。 —これらは非常に近いものですが、これまでのところ、それらに基づいて完全なドロップインソリューションを準備した人は誰もいません。

    最終的にさらに別のアドホックスプリッター /のようないくつかのsqlplusコマンドを認識しています およびEXIT —それでも醜いですが、ほとんどのスクリプトで機能します。 (ただし、末尾に--が付いているスクリプトもあります。 コメント、機能しません—それはまだ解決策ではなく、応急修理です。)



    1. 顧客が一緒に購入した製品を見つける

    2. カテゴリを持つすべてのWordPress投稿を抽出するSQLクエリ

    3. バックスラッシュ\はMySQLの文字としてカウントされますか?

    4. jdbcTimestampまたはDateを使用する場合のOracleとの無視できない実行プランの違い