Blog

QlikView: sfruttare gli Oracle Hints

Prima un po' di "letteratura", per rinfrescare la memoria: quando si accede con Qlik ad una fonte dati attraverso ODBC, tutto ciò che si trova tra la parola "SELECT" (o, per chi preferisce, "SQL SELECT") e il ";" viene eseguito usando il "dialetto" SQL del Driver ODBC cui ci si è collegati.

Un esempio facile da comprendere è la conversione di un campo data in stringa (dd/mm/yyyy), che cambia da un RMDB e l'altro.

 

Ad esempio, se la fonte dati fosse Sybase, si potrebbe scrivere

 

DateOrdini:

Load

    order_date,

    order_date_string;

SELECT

    order_date,

    CONVERT(CHAR(20), order_date, 103) as order_date_string
FROM sales_order;

 

 

Ma se la fonte dati fosse Oracle, si dovrebbe scrivere:

 

DateOrdini:

Load

    order_date,

    order_date_string;

SELECT

    order_datetime,

    TO_CHAR(order_date, 'DD/MM/YYYY') as order_date_string
FROM sales_order;

 

 

Tutto questo semplicemente perché Qlik, in maniera trasparente, passa la stringa SQL direttamente al Driver, che la interpreta e ne ritorna i risultati.

Ci sono però delle eccezioni: ad esempio Oracle mette a disposizione degli strumenti di ottimizzazione delle query chiamati HINTS la cui sintassi è fuorviante, perché è la stessa che si usa in molti linguaggi di programmazione (Qlik compreso) per la definizione di un commento. Di seguito un esempio:

 

SELECT /*+ PARALLEL(2) */

    Campo1, Campo2, Campo3

FROM Tabella;

 

In questo caso Qlik interpreta tutto ciò che si trova dentro /* ... */ come un commento e non lo passa al Driver ODBC.

Fortunatamente esiste un sistema semplice per evitare questa anomalia: si tratta di un flag di sistema che regola il comportamento di Qlik difronte alle righe di commento e si chiama "StripComments".

Dunque per permettere al Driver ODBC di Oracle di leggere correttamente i nostri HINTS sarà sufficiente scrivere la query in questo modo:

 

Set StripComments=0;

 

SELECT /*+ PARALLEL(2) */

    Campo1, Campo2, Campo3

FROM Tabella;

 

Set StripComments=1;

 

Naturalmente l'ultima riga è necessaria per ripristinare il normale comportamento di Qlik rispetto ai commenti.

 

Alla prossima!

Leave your comments

0
terms and condition.
  • No comments found
Our Address:
via Porta Torricella, 7
63100 Ascoli Piceno
T: 0736 256586
F: 0736 254175
PI: 00354060444
Orari:
Dal Lunedì al Venerdì 09:00 to 19:00

Dall'autostrada A14

Dall'uscita autostradale "Ascoli Piceno - San Benedetto del Tronto" prendere il raccordo autostradale Ascoli-Mare e, dopo circa 30 km, imboccare l'uscita per Ascoli centro "Ascoli Piceno - Porta Cartara", che si trova dopo la galleria e dopo la fine del raccordo autostradale, che termina in una breve superstrada. Giunti infondo alla rampa girare a destra seguendo le indicazioni per il "Parcheggio Porta Torricella", successivamente segnalato anche con un semaforo. Dopo aver lasciato la macchina uscire a piedi dall'ingresso del parcheggio (non da quello pedonale) e attraversare il piccolo ponte di cemento sul fiume. Dopo circa 200 metri, sul secondo curvone, entrare nel cancello tenendosi sulla sinistra vicino alla cabina dell'ENEL.

Dalla via Salaria

Percorrendo la Via Salaria seguire le indicazioni Ascoli Piceno. Superare la prima uscita "Ascoli Piceno centro - Rosara" e imboccare la seconda, "Ascoli Piceno - Porta Cartara". Giunti infondo alla rampa seguire l'indicazione per il "Parcheggio Porta Torricella", successivamente segnalato anche con un semaforo. Dopo aver lasciato la macchina uscire a piedi dall'ingresso del parcheggio (non da quello pedonale) e attraversare il piccolo ponte di cemento sul fiume. Dopo circa 200 metri, sul secondo curvone, entrare nel cancello tenendosi sulla sinistra vicino alla cabina dell'ENEL.

Privacy Policy