アプリ版:「スタンプのみでお礼する」機能のリリースについて

お疲れ様です。
質問をお願い致します。

OS:WindowsXP
DB:Oracle10g

PL/SQLで、DBより対象データを取得し、MDBファイルの作成、書込み行いたいのですが、可能なのでしょうか。
ネットで調べたところ、MDBファイルに書き込みは可能と分かったのですが、
ファイルの作成の情報が無かったので、質問させて頂きました。
参考になるサイトなどがあれば教えて頂けますでしょうか?

また、こちらでも重複して質問させて頂いております。
http://forums.oracle.com/forums/thread.jspa?thre …

どうぞ、宜しくお願い致します。

A 回答 (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の前に実行すればいいわけです。
    • good
    • 0
この回答へのお礼

お疲れ様です。

ご回答ありがとう御座います!
utakataXEXさんの仰る通り、PL/SQLでのMDB作成は難しいようなので、他の方法を考えたいと思います。
とても詳しい説明で、勉強になりました。

>そもそも、ORACLEからMDBに書くのではなく、
>ODBC、OLE DBアプリケーションからORACLE向きとMDB向きのコネクションを用意して
>書き込むスタイルなら(つまり逆向きにすれば)何ぼでもサンプルがありますよね。
→上記のご回答の通り、逆向きのサンプルはいっぱいあるんですよね~。

お忙しいところ、ありがとう御座いました~~

お礼日時:2011/05/10 10:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す