Oracle
 sql >> Database >  >> RDS >> Oracle

Accedere al servizio Web dalla stored procedure Oracle

Prima di tutto, che tipo di servizio web stai chiamando? Sto assumendo SOAP o REST.

Per i servizi Web REST, UTL_HTTP è spesso più che sufficiente, combinato con un po' di XPath in una semplice procedura memorizzata PL/SQL.

Per i servizi Web SOAP, dipende da quanto devi (o vuoi) essere sofisticato. Puoi certamente utilizzare XQuery per creare un documento XML che soddisfi le specifiche per il servizio Web, utilizzare UTL_HTTP per pubblicare il documento e ottenere la risposta, quindi utilizzare un po' di XPath per analizzare la risposta tutto in PL/SQL. Questa è una soluzione relativamente manuale e di forza bruta, ma se si parla di una manciata di servizi Web, implica un minimo di infrastruttura e le chiamate possono essere messe insieme abbastanza rapidamente.

Se ti aspetti che le chiamate si evolvano nel tempo o ti aspetti che ci siano un certo numero di procedure che chiamano un certo numero di servizi web, probabilmente ha senso investire tempo in qualcosa come UTL_DBWS (questo non è qualcosa, però, che generalmente ottieni lavoro in un paio d'ore).