• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PL/SQLで、MDBファイル作成)

PL/SQLでMDBファイルの作成と書込みが可能か

このQ&Aのポイント
  • PL/SQLを使用して、Oracle10gのDBからデータを取得し、MDBファイルに作成と書き込みを行いたいです。
  • ネットで調べたところ、MDBファイルへの書き込みは可能と分かりましたが、作成に関する情報は見つかりませんでした。
  • 重複して質問してしまい申し訳ありませんが、PL/SQLでMDBファイルの作成と書込みが可能かどうか教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

可能かどうか、で言えば可能だと思います。 MDBファイルに書き込む方法については、おそらく質問者様が既にお調べになったのは Oracle Generic Connectivity(ODBC、OLE DBでの異機種接続)を使用する方法だと思います。 この場合、構文は ORACLE の構文になりますが、実行できるのは SELECT/INSERT/DELETE/UPDATE だけです(だったと思います)。 DDLすら実行できないので、当然データベースを作る(新規MDB作成)などは Generic Connectivity ではできません。 PL/SQLで(と言うかストアドで)MDBを作成する方法としては、 (1)Javaストアド (2)COM Automation呼び出し (3)外部プロシージャ呼び出し などが考えられます。 (1)はJava+JDBCでソースを書く必要があります。 (3)はC/C++でソースを書く必要があります。 VB、VBA、VBSなどで CreateObjectを使った事があるなら、(2)のCOM Automation呼び出し(ORDCOMパッケージを使用)が一番やりやすいと思いますね、個人的には。 と、ここまで読んで何となく、おわかりかと思いますが、かなーり大変です。 異機種接続やCOM呼び出しでハマッた私が言うのですから、間違いありません。 単体テストレベルまで行き着くのもそれなりに大変ですが、仮にできたとしても、運用フェーズで、おそらくゲッソリするようなトラブルに見舞われる可能性が高いです。 しかもサポート(に入っていたとして)に聞いても、余り正確な解答が得られない事も考えられます。 ODBC、OLE DBでの異機種接続やCOM呼び出しなんて、実のところ、ORACLEにしてみたら「そんなのスコープ外です!」と言いたいところでしょう。 と、言う事でお薦めのソリューションは、PL/SQLからMDBを作成したり、更新したりはしない、別のアプローチを考える、と言う事です。 そもそも、ORACLEからMDBに書くのではなく、ODBC、OLE DBアプリケーションからORACLE向きとMDB向きの2コネクションを用意して書き込むスタイルなら(つまり逆向きにすれば)何ぼでもサンプルがありますよね。 どうしても、「ORACLEから」にするなら、最悪でも Generic Connectivity までにしておくべきでしょう。 PL/SQLを考えている、と言う事は、その無名PL/SQLなりストアドなりを実行するアプリケーションがあるわけですよね? 例えば、それがWindowsのバッチであれば、MDBの雛形をコピーするようなバッチなどを用意しておき、PL/SQLの前に実行すればいいわけです。

talman
質問者

お礼

お疲れ様です。 ご回答ありがとう御座います! utakataXEXさんの仰る通り、PL/SQLでのMDB作成は難しいようなので、他の方法を考えたいと思います。 とても詳しい説明で、勉強になりました。 >そもそも、ORACLEからMDBに書くのではなく、 >ODBC、OLE DBアプリケーションからORACLE向きとMDB向きのコネクションを用意して >書き込むスタイルなら(つまり逆向きにすれば)何ぼでもサンプルがありますよね。 →上記のご回答の通り、逆向きのサンプルはいっぱいあるんですよね~。 お忙しいところ、ありがとう御座いました~~