Per una delle aziende per cui lavoro, ho creato un REST web service in Java, che si connette al database Oracle, ed espone i dati in formato JSON.

Partendo da questo esempio reale, vi mostro come creare un web service REST in Java, usando JAX-WS!

Questo è quello che useremo nel progetto:

  • Maven -> per gestire il progetto e le dipendenze
  • Grizzly -> come HTTP server
  • Jersey -> framework open source per la creazione di servizi RESTful in Java
  • OJDBC -> per la connessione al db Oracle; se avete un altro tipo di db, potete usare JDBC o un altro driver appropriato

Su una macchina Linux ho installato l'Oracle client e tutto il necessario, ed ho provato a connettermi tramite ODBC (unixODBC per la precisione).

Con le credenziali giuste, ottenevo sempre questo errore:

ERROR:
ORA-21561: OID generation failed

Alla fine ho scoperto di dover modificare il file /etc/hosts.

SQL Plus è l'utility da riga di comando per interagire con i database Oracle.

Con questa utility è possibile fare parecchie cose, anche usarlo dentro ad un BAT ad esempio.

Oggi vediamo come estrarre i dati da un db Oracle, buttandoli dentro ad un file TXT, il tutto usando un file BAT ed un file SQL.

La funzione DECODE, propria di Oracle, è molto comoda quando vogliamo farci restituire un risultato a seconda che un determinato valore esista o meno.

In sostanza è un pò come dire:

SELEZIONA IL VALORE DALLA TABELLA, E SE ESISTE VISUALIZZALO, E SE NON ESISTE SCRIVI "NON TROVATO"

Una sorta di IF per capirci.

La necessità è quella di connettere Python a un database Oracle, su piattaforma Linux.

Avendo già installato unixODBC, ho deciso di usare quella connessione.

Per sapere come installare e configurare unixODBC su Linux per un db Oracle potete vedere qua.

Do quindi per scontato questo passaggio.