2

当社では、Oracle などの ERP システムから送信された XML データを受け入れる ASP.NET サービスを作成中です。私たちは Oracle の経験が (まったく) ないので、この質問の単純さを許してください。

オンラインで、Oracle には JDeveloper というツールがあり、DataContract/WSDL を使用して比較的簡単にデータを送受信するWCF サービスに接続できることがわかりました。

WSDL や DataContracts が存在しない WebAPI に関する状況について誰かアドバイスできますか? Oracle で POST を作成して WebAPI に送信するのは簡単ですか、それとも前者のオプションの方が優れていて使いやすいですか?

前もって感謝します。

4

1 に答える 1

2

Oracle から Web サービスを直接呼び出すのは簡単です。

  1. リクエストを作成し、レスポンスを解析するための XML/XSLT/XQuery の適切なサポートがあります ( XML DB ) 。

  2. Oracle には、HTTP/HTTPS リクエスト ( UTL_HTTPpackage ) を処理するための API があります。

そのため、Oracle から Web サービスを呼び出すことにした場合、SOAP および REST Web サービスは可能であり、比較的簡単です。
サンプル コードは、StackOverflowのこの回答にあります。

更新 - コメントへの回答

明確にするために、上記の例は、PL/SQL に実装されているため、「データベース クエリ レベル」では機能しません。Oracle データベース エンジンには、次の 2 つの異なる言語のサポートがネイティブに組み込まれています。

この2つのことは本当に異なります。SQL エンジンと PL/SQL エンジンの間のコンテキストの切り替えによって影響を受けるパフォーマンスに関する一般的な質問もあり、そのほとんどは不適切なプロシージャの設計が原因です。

手続き型言語としての PL/SQL は、組み込みパッケージのセットとして Oracle によって提供される API の豊富なセットにアクセスできます。特に、ネットワーク通信プロトコルと標準UTL_TCPに直接関連するパッケージがいくつかあり ます。 UTL_URLUTL_SMTPUTL_MAILUTL_INADDRUTL_HTTPHTPHTFDBMS_LDAP

Web 上での PL/SQL コードの公開をサポートするために提供される一連の API があることを言う必要があります。OWA_xxxx パッケージのセットは、を介したアクセスをサポートしていますmod_plsql。もう 1 つのことは、Oracle XML DB での SOAP Web サービスの公開のサポートです

スケジュールに従って Oracle から Web サービスにデータをアンロードする必要がある場合はDBMS_SCHEDULEDBMS_JOBパッケージを参照して、定期的にアンロード手順を開始してください。

このシステム パッケージのほとんどは Java で実装されており、PL/SQL から呼び出し可能な独自の Java 拡張機能を作成できます

PS UTL_DBWSOracle Database からの SOAP サービスへの呼び出しの実装専用のパッケージがありますが、解決するよりも多くの問題が発生するようで、11g のドキュメント (10g のみ) で参照を見つけることができません。

PPS いくつかの記述は少し不正確であるか誇張を含んでいる可能性がありますが、全体像を理解するにはそれで十分です。

于 2013-10-01T15:56:54.560 に答える