Der Browser in eurer Datenbank: HTTPURITYPE
Wenn es darum geht, HTTP-Zugriffe aus der Datenbank heraus zu machen, ist das Paket
UTL_HTTP natürlich das Mittel der Wahl - damit kann ein Browser komplett imitiert werden;
vom Setzen der HTTP Header Felder oder von Cookies bis hin zu den HTTP Methoden GET und POST
ist alles drin, was man braucht.
In vielen Fällen braucht man das alles aber nicht - es muss einfach nur etwas per
HTTP abgerufen werden. Und für genau diese Fälle gibt es die ganz einfache Variante: HTTPURITYPE - das
kann man nutzen wie eine SQL-Funktion und es macht die ganze Arbeit auf einmal.
Da passiert erstmal noch nix ... Los geht's, wenn Ihr den Content selbst mit
GETBLOB(), GETCLOB() oder GETXML() abruft.
Alles klar, dann setzen wir noch den Proxy ...
Voilá. HTTPURITYPE kann den Code wirklich ganz massiv
vereinfachen - und wenn eine einfache Lösung ausreicht, dann soll man diese ja auch
nutzen. Und als kleinen Exkurs kann man das Beispiel ja noch fortsetzen, indem man das
XML auch direkt zerlegt ...
Einen RSS-Feed abholen und direkt zerlegen - mit nur einer SQL-Abfrage. Einfacher geht es nun
wirklich nicht.
Ach ja ... fast hätte ich das vergessen. Ab Oracle11g braucht Ihr noch zusätzliche Netzwerk-Privilegien,
damit Ihr aus der Datenbank überhaupt herauskommt: Mit dem PL/SQL-Paket DBMS_NETWORK_ACL_ADMIN
müsst Ihr uerem Datenbankuser für die einzelnen Netzwerkziele freischalten. Wie das geht, ist in
diesem Blog-Posting beschrieben.