Sul mio db Oracle, ho una funzione (non fatta da me) che restituisce i valori in questo modo:

'49;50;30;0;0;0;0;0;'

Di tutto ciò, mi serve prendere solo il terzo valore; quindi dovrei spezzare la stringa in corrispondenza del punto e virgola, e poi prendere il terzo pezzo.

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.