Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Greifen Sie über eine gespeicherte Oracle-Prozedur auf den Webdienst zu

Zunächst einmal, welche Art von Webdienst rufen Sie an? Ich gehe davon aus, dass entweder SOAP oder REST.

Für REST-Webdienste ist UTL_HTTP oft mehr als ausreichend, kombiniert mit etwas XPath in einer einfachen gespeicherten PL/SQL-Prozedur.

Bei SOAP-Webdiensten hängt es davon ab, wie anspruchsvoll Sie sein müssen (oder wollen). Sie können sicherlich XQuery verwenden, um ein XML-Dokument zu erstellen, das die Spezifikation für den Webdienst erfüllt, UTL_HTTP verwenden, um das Dokument zu veröffentlichen und die Antwort zu erhalten, und dann etwas XPath verwenden, um die Antwort alles in PL/SQL zu analysieren. Dies ist eine relativ manuelle und relativ Brute-Force-Lösung, aber wenn Sie über eine Handvoll Webdienste sprechen, erfordert dies ein Minimum an Infrastruktur, und die Anrufe können ziemlich schnell zusammengewürfelt werden.

Wenn Sie davon ausgehen, dass sich die Aufrufe im Laufe der Zeit weiterentwickeln oder Sie davon ausgehen, dass es eine Reihe von Prozeduren gibt, die eine Reihe von Webdiensten aufrufen, ist es wahrscheinlich sinnvoll, Zeit in etwas wie UTL_DBWS zu investieren (dies ist jedoch etwas, das Sie im Allgemeinen nicht bekommen Arbeit in ein paar Stunden).