Adattatori SQL

In questa sezione:

 

Questa sezione fornisce descrizioni dettagliate di nuove funzioni per adattatori SQL.


Inizio pagina

x
Tutti gli adattatori SQL

In questa sezione:

 

Questa sezione fornisce descrizioni dettagliate di nuove funzioni per tutti gli adattatori SQL.



x
Creazione di indici per una tabella esistente

Un sinonimo per una tabella in una origine dati relazionale è in grado di contenere dichiarazioni nel file di accesso, specificando quali colonne dovrebbero avere indici.

Quando si emette un comando CREATE FILE per una tabella, si crea un indice in DBMS relazionale per la chiave principale e per ogni indice specificato nel file di accesso.

Se si desidera creare una tabella senza creare tutti gli indici in quel momento, è possibile omettere le dichiarazioni indice dal File Accesso ed emettere il comando CREATE FILE per creare solo la tabella e l'indice sulla chiave principale. Quindi, in seguito, è possibile aggiungere le dichiarazioni indice al file di accesso ed emettere il comando CREATE FILE con la frase INDEXESONLY. L'opzione di aggiungere indici in seguito rende il caricamento dati in una tabella relazionale più veloce.



x
Sintassi: Come creare indici per una tabella esistente
CREATE FILE app/synonym INDEXESONLY 

dove:

app

La cartella dell'applicazione in cui si trova il sinonimo.

sinonimo

Il sinonimo per la tabella esistente.



x
Riferimento: Note per l'uso per CREATE FILE con INDEXESONLY
  • CREATE FILE crea sempre un indice sulla chiave principale.
  • CREATE FILE con INDEXESONLY ricrea l'indice sulla chiave principale e crea tutti gli indici dichiarati nel file di accesso.


x
Ottimizzazione di unioni esterne complete

Il comando di unione WebFOCUS e il comando di unione condizionale presentano una opzione unione FULL OUTER.

Una unione esterna completa restituisce tutte le righe dall'origine dati e tutte le righe dall'origine dati target. Dove non esistono valori per le righe in nessuna delle origini dati, si restituiscono valori nulli. WebFOCUS sostituisce i valori predefiniti sull'emissione di prospetto (spazi vuoti per colonne alfanumeriche, il simbolo NODATA per colonne numeriche).

L'unione esterna completa è solo supportata per uso con quelle origini dati relazioni che supportano questo tipo di unione, nel quale caso si ottimizza la sintassi unione WebFOCUS (tradotta nella sintassi SQL unione esterna completa da RDBMS). L'uso di questa sintassi per qualsiasi origine dati non supporta una unione esterna completa, o il fallimento della richiesta da ottimizzare al motore produce un messaggio di errore.



x
Sintassi: Come specificare una unione esterna completa

La seguente sintassi genera una unione esterna completa a seconda dei campi reali:

JOIN FULL_OUTER hfld1 [AND hfld2 ...] IN table1 [TAG tag1] TO {UNIQUE|MULTIPLE} cfld [AND cfld2 ...] IN table2 [TAG tag2] [AS joinname]
END

dove:

hfld1

Il nome di un campo nella tabella host, contenente valori condivisi con un campo nella tabella di riferimento incrociato. Questo campo si chiama campo host.

AND hfld2...

La frase che inizia con AND, si richiede quando si specificano più campi.

  • Per adattatori relazionali che supportano multi-campi e unioni concatenate, è possibile specificare fino a 16 campi. Consultare la documentazione del proprio adattatore per informazioni specifiche sulle funzioni unione supportate.
IN table1

È il nome della tabella host.

TAG tag1

Un nome tag fino a 66 caratteri, (di solito il nome del file master), usato come identificatore univoco per campi e alias in tabelle host.

Il nome tag per la tabella host deve essere lo stesso in tutti i comandi JOIN di una struttura unita.

TO [UNIQUE|MULTIPLE] crfld1

Il nome di un campo nella tabella di riferimento incrociato, contenente valori che corrispondono a quelli di hfld1 (o di campi host concatenati). Questo campo si chiama campo di riferimento incrociato.

Nota: UNIQUE restituisce solo una istanza e, se non è presente una istanza corrispondente nella tabella di riferimento incrociato, si restituiscono valori nulli.

Usare il parametro MULTIPLE quando crfld1 potrebbe avere multiple istanze in comune con un valore in hfld1. Notare che ALL è un sinonimo per MULTIPLE e, omettendo questo parametro completamente, risulta in un sinonimo per UNIQUE.

AND crfld2...

Il nome di un campo nella tabella di riferimento incrociato con valori in comune con hfld2.

Nota: crfld2 potrebbe essere qualificato. Questo campo è solo disponibile per adattatori che supportano unioni multi-campi.

IN crfile

È il nome della tabella con riferimento incrociato.

TAG tag2

Un nome tag fino a 66 caratteri, (di solito il nome del file master), usato come identificatore univoco per campi e alias in tabelle di riferimento incrociato. In una struttura ad unione ricorsiva, se non si fornisce nessun nome tag, tutti i nomi dei campi e alias sono prefissati con i primi quattro caratteri del nome unione.

Il nome tag per la tabella host deve essere lo stesso in tutti i comandi JOIN di una struttura unita.

AS joinname

Un nome opzionale fino a otto caratteri da poter assegnare alla struttura unione. È necessario assegnare un nome univoco ad una struttura unione se:

  • È consigliabile assicurarsi che un comando JOIN successivo non lo sovrascrivi.
  • È consigliabile deselezionarlo in seguito.
  • La struttura è ricorsiva.

Nota: Se non si assegna un nome alla struttura unione con la frase AS, il nome si presuppone sia vuoto. Una unione senza un nome sovrascrive una unione esistente senza un nome.

END

Richiesta quando il comando JOIN risulta più lungo di una riga. Termina il comando e deve essere su una riga da solo.

La seguente sintassi genera una unione esterna completa basata su DEFINE:

JOIN FULL_OUTER deffld WITH host_field ... 
     IN table1 [TAG tag1]
     TO [UNIQUE|MULTIPLE] 
     cr_field IN table2 [TAG tag2] [AS joinname]
END

dove:

deffld

Il nome del campo virtuale per il file host (il campo host). È possibile definire il campo virtuale nel file principale o con un comando DEFINE.

WITH host_field

Il nome di qualsiasi campo reale nel segmento host con cui di desidera associare il campo virtuale. Questa associazione si richiede per localizzare il campo virtuale.

La frase WITH si richiede, a meno che il parametro KEEPDEFINES non sia impostato su ON e deffld non sia stato definito prima di emettere il comando JOIN.

Per determinare quale segmento contiene il campo virtuale, usare il ?

IN table1

È il nome della tabella host.

TAG tag1

Un nome tag fino a 66 caratteri, (di solito il nome del file master), usato come identificatore univoco per campi e alias in tabelle host.

Il nome tag per la tabella host deve essere lo stesso in tutti i comandi JOIN di una struttura unita.

TO [UNIQUE|MULTIPLE] crfld1

Il nome di un campo reale nella tabella di riferimento incrociato, i quali valori corrispondono a quelli del campo virtuale. Questo deve essere un campo reale dichiarato nel file principale.

Nota: UNIQUE restituisce solo una istanza e, se non è presente una istanza corrispondente nella tabella di riferimento incrociato, si restituiscono valori nulli.

Usare il parametro MULTIPLE quando crfld1 potrebbe avere multiple istanze in comune con un valore in hfld1. Notare che ALL è un sinonimo per MULTIPLE e, omettendo questo parametro completamente, risulta in un sinonimo per UNIQUE.

IN crfile

È il nome della tabella con riferimento incrociato.

TAG tag2

Un nome tag fino a 66 caratteri, (di solito il nome del file master), usato come identificatore univoco per campi e alias in tabelle di riferimento incrociato. In una struttura ad unione ricorsiva, se non si fornisce nessun nome tag, tutti i nomi dei campi e alias sono prefissati con i primi quattro caratteri del nome unione.

Il nome tag per la tabella host deve essere lo stesso in tutti i comandi JOIN di una struttura unita.

AS joinname

Un nome opzionale fino a otto caratteri da poter assegnare alla struttura unione. È necessario assegnare un nome univoco ad una struttura unione se:

  • È consigliabile assicurarsi che un comando JOIN successivo non lo sovrascrivi.
  • È consigliabile deselezionarlo in seguito.
  • La struttura è ricorsiva e non si specificano nomi tag.

Se non si assegna un nome alla struttura unita con la frase AS, il nome si presuppone sia vuoto. Una unione senza un nome sovrascrive una unione esistente senza un nome.

END

Richiesta quando il comando JOIN risulta più lungo di una riga. Termina il comando e deve essere su una riga da solo.

La seguente sintassi genera una unione condizionale esterna completa:

JOIN FULL_OUTER FILE table1 AT hfld1 [WITH hfld2] [TAG tag1]
     TO {UNIQUE|MULTIPLE} 
     FILE table2 AT crfld [TAG tag2] [AS joinname]
     [WHERE expression1;
     [WHERE expression2;
     ...]
END

dove:

table1

Master File host.

AT

Collega il segmento principale o host corretto al segmento secondario o di riferimento incrociato corretto. I valori campo usati come parametro AT non si usano per creare il collegamento. Si usano come riferimento segmento.

hfld1

Il nome campo nel file principale, il quale segmento si unirà alla tabella di riferimento incrociato. Il nome campo deve essere al segmento di livello inferiore nella propria origine dati di riferimento.

tag1

Nome del tag opzionale come qualificatore univoco per campi e alias nel file nella tabella host.

hfld2

Una colonna di tabella con cui associare una JOIN condizionale basata su DEFINE. Per una unione condizionale basata su DEFINE, l'impostazione KEEPDEFINES deve essere ON ed è necessario creare i campi virtuali prima di emettere il comando JOIN.

MULTIPLE

Specifica una relazione una-a-molte tra table1 e table2. Notare che ALL è un sinonimo per MULTIPLE

UNIQUE

Specifica una relazione una-a-molte tra table1 e table2. Notare che ONE è un sinonimo per UNIQUE.

Nota: L'unione in UNIQUE restituirà solo una istanza della tabella di riferimento incrociato e se questa istanza non corrisponde in base alla valutazione dell'espressione WHERE, si restituiscono valori nulli.

crfile

Master File di riferimento incrociato.

crfld

Il nome campo unione nel file principale di riferimento incrociato.

tag2

Nome del tag opzionale come qualificatore univoco per campi e alias nel file nella tabella di riferimento.

joinname

Il nome associato con la struttura unita.

expression1, expression2

Qualsiasi espressione accettabile in un comando DEFINE FILE. Tutti i campi usati nelle espressioni devono risidere su un solo percorso.

END

Il comando END si richiede per terminare il comando e deve essere su una riga da solo.



Esempio: Ottimizzazione di una unione esterna completa delle tabelle Microsoft SQL Server

Le seguenti richieste generano due tabelle Microsoft SQL Server da unire e quindi emetteno una richiesta rispetto all'unione. Le tabelle sono generate usando il campione wf_retail, da poter creare usando il tutorial WebFOCUS - Retail Demo, nella console web del server.

La seguente richiesta genera la tabella WF_SALES. Il campo ID_PRODUCT sarà usato nel comando unione esterna completa. La tabella generata conterrà i valori ID_PRODUCT da 2150 a 4000:

TABLE FILE WF_RETAIL_LITE
SUM GROSS_PROFIT_US PRODUCT_CATEGORY PRODUCT_SUBCATEG
BY ID_PRODUCT
WHERE ID_PRODUCT FROM 2150 TO 4000
ON TABLE HOLD AS WF_SALES FORMAT SQLMSS
END

La seguente richiesta genera la tabella WF_PRODUCT. Il campo ID_PRODUCT sarà usato nel comando unione esterna completa. La tabella generata conterrà i valori ID_PRODUCT da 3000 a 5000:

TABLE FILE WF_RETAIL_LITE
SUM PRICE_DOLLARS PRODUCT_CATEGORY PRODUCT_SUBCATEG PRODUCT_NAME
BY ID_PRODUCT
WHERE ID_PRODUCT FROM 3000 TO 5000
ON TABLE HOLD AS WF_PRODUCT FORMAT SQLMSS
END

La seguente richiesta emette il comando JOIN e visualizza valori dalle tabelle unite:

SET TRACEUSER=ON
SET TRACESTAMP=OFF
SET TRACEOFF=ALL
SET TRACEON = STMTRACE//CLIENT
JOIN FULL_OUTER ID_PRODUCT IN WF_PRODUCT TAG T1 TO ALL ID_PRODUCT IN WF_SALES TAG T2
 
TABLE FILE WF_PRODUCT
PRINT T1.ID_PRODUCT AS 'Product ID' 
PRICE_DOLLARS AS Price
T2.ID_PRODUCT AS 'Sales ID' 
GROSS_PROFIT_US
BY T1.ID_PRODUCT NOPRINT
ON TABLE SET PAGE NOPAGE
END

La traccia mostra che l'unione esterna completa è stata ottimizzata (tradotta a SQL), quindi il Server SQL è in grado di elaborare l'unione:

SELECT   
T1."ID_PRODUCT",  
T1."PRICE_DOLLARS",  
T2."ID_PRODUCT",  
T2."GROSS_PROFIT_US"  
FROM   
( WF_PRODUCT T1  
FULL OUTER JOIN WF_SALES T2  
ON T2."ID_PRODUCT" = T1."ID_PRODUCT" )  
ORDER BY   
T1."ID_PRODUCT";  

L'emissione ha una riga per ogni valore ID_PRODUCT, presente in una delle tabelle. Le righe con valori ID_PRODUCT da 2150 a 2167 sono solo nella tabella WF_SALES, quindi le colonne da WF_PRODUCT visualizzano il simbolo NODATA. Le righe con i valori ID_PRODUCT sopra a 4000 sono solo nella tabella WF_PRODUCT, quindi le colonne da WF_SALES visualizzano il simbolo NODATA. Le righe con valori ID_PRODUCT da 2000 a 4000 sono in entrambe le tabelle, quindi tutte le colonne presentano valori, come illustrato nella seguente immagine.



x

Il comando JOIN AS_ROOT aggiunge una nuova fact table come ulteriore radice ad un cluster basato su fatto esistente (schema a stella). Il file principale di origine ha un segmento fact principale e almeno un segmento dimensione secondario. Il comando JOIN AS_ROOT supporta una unione unica da un segmento dimensione secondario (a qualsiasi livello) ad un ulteriore segmento fact principale.



x
Sintassi: Come aggiungere un ulteriore segmento principale
JOIN AS_ROOT sfld1 [AND sfld2 ...] IN [app1/]sfile TO UNIQUE tfld1 [AND tfld2 ...] IN [app2/]tfile AS jname    
END

dove:

sfld1 [AND sfld2 ...]

I campi nel segmento secondario (dimensione) del file di origine che corrispondono ai valori dei campi nel file target.

[app1/]sfile

File di origine.

TO UNIQUE tfld1 [AND tfld2 ...]

I campi nel file target che corripondono ai valori dei campi nel segmento secondario del file di origine. L'unione deve essere unica.

[app2/]tfile

File target.

jname

Nome dell'unione.

END

Richiesto per terminare il comando JOIN.



Esempio: Unione di AS_ROOT dall'origine dati WebFOCUS Retail ad un file Excel

La seguente richiesta unisce i campi della categoria e sottocategoria prodotto nell'origine dati WebFOCUS Retail ad un file Excel chiamato PROJECTED.

Per generare l'origine dati WebFOCUS Retail nella cosole web, fare clic su Tutorial dal pagina di applicazione.

Selezionare WebFOCUS - Retail Demo. Selezionare il proprio adattatore relazionale configurato (o selezionare l'opzione flat file se non si ha un adattatore relazionale configurato), selezionare Limite Dati Tutorial e quindi fare clic su Crea.

Il file principale per il file Excel è:

FILENAME=PROJECTED, SUFFIX=DIREXCEL,
 DATASET=app2/projected.xlsx, $
  SEGMENT=PROJECTED, SEGTYPE=S0, $
    FIELDNAME=PRODUCT_CATEGORY, ALIAS='Product  Category', USAGE=A16V, ACTUAL=A16V,
      MISSING=ON,
      TITLE='Product  Category',
      WITHIN='*PRODUCT', $
    FIELDNAME=PRODUCT_SUBCATEGORY, ALIAS='Product     Subcategory', USAGE=A25V, ACTUAL=A25V,
      MISSING=ON,
      TITLE='Product     Subcategory',
      WITHIN=PRODUCT_CATEGORY, $
    FIELDNAME=PROJECTED_COG, ALIAS='              Projected COG', USAGE=P15.2C, ACTUAL=A15,
      MISSING=ON,
      TITLE='              Projected COG', MEASURE_GROUP=PROJECTED,
      PROPERTY=MEASURE,  $
    FIELDNAME=PROJECTED_SALE_UNITS, ALIAS='             Projected Sale Units', USAGE=I9, ACTUAL=A11,
      MISSING=ON,
      TITLE='             Projected Sale Units', MEASURE_GROUP=PROJECTED,
      PROPERTY=MEASURE,  $
 MEASUREGROUP=PROJECTED, CAPTION='PROJECTED', $
 DIMENSION=PRODUCT, CAPTION='Product', $
  HIERARCHY=PRODUCT, CAPTION='Product', HRY_DIMENSION=PRODUCT, HRY_STRUCTURE=STANDARD, $

La seguente immagine mostra i dati nel file Excel.

La seguente richiesta si unisce dal segmento wf_retail_product dell'origine dati wf_retail al file excel, come nuova radice ed esegue il reporting da entrambi i segmenti principali:

JOIN AS_ROOT PRODUCT_CATEGORY AND PRODUCT_SUBCATEG IN WF_RETAIL
  TO UNIQUE PRODUCT_CATEGORY AND PRODUCT_SUBCATEGORY IN PROJECTED 
  AS J1.
END
TABLE FILE WF_RETAIL
SUM PROJECTED_SALE_UNITS REVENUE_US 
BY PRODUCT_CATEGORY
ON TABLE SET PAGE NOPAGE
END

L'emissione è:



x
Unione da un sinonimo multi-fact

I sinonimi con più elementi principali sono ora supportati come origine per una unione in un singolo segmento, in un sinonimo target.

Una unione da un sinonimo con più elementi principali è soggetta alle seguenti condizioni:

  • Le unioni condizionali non sono supportate (JOIN WHERE).
  • L'unione deve essere unica. Ovvero, le frasi TO ALL o TO MUTLIPLE non sono supportate.
  • Il target dell'unione non può essere un sinonimo con più elementi.
  • Il target di JOIN deve essere un solo segmento, o un sinonimo con un solo segmento, o un segmento in un sinonimo con più elementi, ma con un solo elemento principale.
  • Tutti i campo in JOIN devono essere FROM/TO un solo segmento. È possibile usare nell'unione qualsiasi segmento singolo nel sinonimo di origine.


Esempio: Unione da un sinonimo multi-fact

Il seguente file principale descrive una struttura con più elementi principali, basati su totorial WebFOCUS Retail. Le due fact table wf_retail_sales and wf_retail_shipments sono elementi principali della tabella dimensione wf_retail_product.

FILENAME=WF_RETAIL_MULTI_PARENT, $
  SEGMENT=WF_RETAIL_SHIPMENTS, CRFILE=WFRETAIL/FACTS/WF_RETAIL_SHIPMENTS, CRINCLUDE=ALL,
    DESCRIPTION='Shipments Fact', $
  SEGMENT=WF_RETAIL_SALES, PARENT=., CRFILE=WFRETAIL/FACTS/WF_RETAIL_SALES, CRINCLUDE=ALL,
    DESCRIPTION='Sales Fact', $
  SEGMENT=WF_RETAIL_PRODUCT, CRFILE=WFRETAIL/DIMENSIONS/WF_RETAIL_PRODUCT, CRINCLUDE=ALL,
    DESCRIPTION='Product Dimension', $
   PARENT=WF_RETAIL_SHIPMENTS, SEGTYPE=KU,
    JOIN_WHERE=WF_RETAIL_SHIPMENTS.ID_PRODUCT EQ WF_RETAIL_PRODUCT.ID_PRODUCT;, $
   PARENT=WF_RETAIL_SALES, SEGTYPE=KU,
    JOIN_WHERE=WF_RETAIL_SALES.ID_PRODUCT EQ WF_RETAIL_PRODUCT.ID_PRODUCT;, $

La seguente immagine mostra le unioni tra queste tabelle nell'Editor di Sinonimo della console di gestione dati (DMC).

La seguente richiesta unisce il segmento di prodotto alla tabella dimensione wf_retail_vendor, a seconda dell'ID fornitore ed emette una richiesta rispetto alla struttura unita:

JOIN ID_VENDOR IN WF_RETAIL_MULTI_PARENT TO ID_VENDOR IN WF_RETAIL_VENDOR AS J1
TABLE FILE WF_RETAIL_MULTI_PARENT
SUM COGS_US DAYSDELAYED
BY PRODUCT_CATEGORY
BY VENDOR_NAME
WHERE PRODUCT_CATEGORY LT 'S'
ON TABLE SET PAGE NOPAGE
END

L'emissione è:



x
Migliore gestione di uno schema a stella con Fan Trap

Quando uno schema a stella contiene un segmento con fact aggregati e un segmento di livello inferiore, con i fact con i relativi dettagli di livello, una richiesta che esegue l'aggregazione su entrambi i livelli e li restituisce ordinati per livello superiore potrebbe riscontrare l'effetto moltiplicativo. Questo significa che i valori fact che sono già aggregati potrebbero essere riaggregati e, quindi, restituire valori motliplicati.

Quando l'adattatore rileva l'effetto moltiplicativo, si disattiva l'ottimizzazione, per gestire l'elaborazione della richiesta e per aggirare l'effetto moltiplicativo. Tuttavia, la prestazione risulta danneggiata quando non si ottimizza una richiesta.

Un nuovo processo di analisi di contesto è stato introdotto in questo release che rileva l'effetto moltiplicativo e genera comandi script SQL, che recuperano i valori corretti per ogni contesto di segmento. Questi script sono quindi inoltrati a RDBMS come subquery in una dichiarazione SQL ottimizzata.

Per attivare la funzione analisi di contesto, fare clic su Modifica Impostazioni Adattatore Comune sulla pagina Adattatori della console web. Quindi, selezionare per il parametro FCA nella sezione Impostazioni Varie e fare clic su Salva, come illustrato nella seguente immagine.



x

Nei release precedenti, i campi partecipanti nella chiave in una tabella dovevano essere descritti prima nel file principale. Il numero di campi chiave si identificava per l'attributo KEYS=n, nel file di accesso, dove n è il numero dei campi principali.

Anche se questo metodo è ancora supportato da adattatori relazionali, è ora obsoleto. Nella Versione 7 Release 7.06, è disponibile la nuova sintassi che non richiede nessun riordinamento dei campi nel file principale. Se si apre un file di accesso con la sintassi KEYS=n in Editor di Sinonimo, l'Editor di Sinonimo lo convertirà nella nuova sintassi.



x
Sintassi: Come specificare le chiavi non contigue nel file di accesso

Nel file di accesso, identificare i campi chiave con la seguente sintassi:

KEY=fld1/fld2/.../fldn

dove:

fld1, fld2,...,fldn

I campi che partecipano nella chiave.



Esempio: Specificazione di chiave non contigue nel file di accesso

Il seguente è un file principale per una tabella Oracle:

FILENAME=BMKEY, SUFFIX=SQLORA  , $
  SEGMENT=BMKEY, SEGTYPE=S0, $
    FIELDNAME=F1INT, ALIAS=F1INT, USAGE=I11, ACTUAL=I4, $
    FIELDNAME=F2CHAR4, ALIAS=F2CHAR4, USAGE=A4, ACTUAL=A4,
      MISSING=ON, $
    FIELDNAME=F3INT, ALIAS=F3INT, USAGE=I11, ACTUAL=I4,
      MISSING=ON, $
    FIELDNAME=F4CHAR6, ALIAS=F4CHAR6, USAGE=A6, ACTUAL=A6,
      MISSING=ON, $

Il seguente file di accesso identifica F4CHAR6 e F1INT come campi chiave, con F4CHAR6 come porzione di ordine superiore della chiave, anche se non è la prima del file principale:

SEGNAME=BMDKEY_KEY_FLDLST, 
   TABLENAME=R729999D.BMDKEY, 
   CONNECTION=<local>, 
   KEY=F4CHAR6/F1INT, $


x
Ottimizzazione di funzioni di caratteri semplificati

Le funzioni dei caratteri semplificati presentano elenchi parametro semplificati, simili a quelli utilizzati dalle funzioni SQL. Tali elementi sono ottimizzati rispetto ad una vasta gamma di origini dati relazionali. Le funzioni di carattere semplificate, introdotte in questo release, sono:

  • SUBSTRING - Estrae una sottostringa da una stringa di caratteri d'origine.
  • TOKEN - Estrae un token da una stringa.
  • LTRIM - Rimuove tutti gli spazi dall'estremità sinistra della stringa di caratteri.
  • RTRIM - Rimuove tutti gli spazi dall'estremità destra della stringa di caratteri.
  • TRIM_ - Rimuove i caratteri iniziali, i caratteri finali o entrambi da una una stringa di caratteri.
  • CHAR_LENGHT - Restituisce la lunghezza di caratteri di una stringa di origine
  • LOWER - Restituisce la stringa di caratteri con tutte le lettere in caratteri minuscoli.
  • UPPER - Restituisce la stringa di caratteri con tutte le lettere in caratteri maiuscoli.
  • POSITION - Restituisce la posizione della pirma ricorrenza di una stringa campione specifica nella stringa d'origine.

Il Prospetto Ottimizzazione SQL fornisce informazioni di ottimizzazione per ogni funzione per adattatore.



x
Ottimizzazione di funzioni data-ora e data semplificate

Le funzioni data e data-ora semplificate presentano elenchi parametro semplificati, simili a quelli utilizzati dalle funzioni SQL. Tali elementi sono ottimizzati rispetto ad una vasta gamma di origini dati relazionali. Le funzioni data-ora e data semplificate, introdotte in questo release, sono:

  • DTRUNC - Data una data o timestamp e un componente, DTRUNC restituisce la prima data all'interno del periodo specificato da quel componente.
  • DTADD - Data una data in formato data standard o data-ora, DTADD restituisce una nuova data dopo aver aggiunto il numero specificato o un componente supportato. Il formato data restituito è l stesso del formato data d'immissione.
  • DTPART - Data una data in formato data standard o data-ora ed un componente, DTPART restituisce il valore componente in formato intero.
  • DTDIFF - Fornite due date in formati data standard e data-ora, DTDIFF restiutisce il numero dei confini del componente dato tra due date. Il valore restituito presenta formato intero per i componenti del calendario o formato punto mobile di precisione doppia per i componenti ora.

Il Prospetto Ottimizzazione SQL fornisce informazioni di ottimizzazione per ogni funzione per adattatore.



x
Ottimizzazione delle funzioni numeriche e di caratteri legacy

Le seguenti funzioni sono state ottimizzate per la maggior parte degli adattatori SQL, come riportato nel Prospetto Ottimizzazione SQL.

  • TRIMV con le opzioni L o B (sinistra o destra)
  • TRIM.
  • POWER (fld ** exponent).
  • ARGLEN.


x
Ottimizzazione di funzioni data-ora e data

Le seguenti funzioni sono ottimizzate come riflesso nel Prospetto Ottimizzazione SQL.

  • DATEADD. Con parametri YEAR, MONTH e DAY.
  • DATECVT. Ottimizzate per DB2 con formati data legacy a 6 cifre I6YMD, I6MDY, I6DMY, P6YMD, P6MDY, P6DMY, A6YMD, A6MDY e A6DMY.
  • DATEDIFF. Con parametri YEAR, MONTH e DAY.
  • DATEMOV. Con parametri BOW, EOW, BOM, EOM, BOQ, EOQ, BOY e EOY.
  • DPART. Con parametri YEAR, MONTH, DAY, QUARTER, e WEEKDAY.
  • HADD. Con parametri YEAR, MONTH, HOUR, MINUTE e SECOND.
  • HDATE.
  • HDIFF. Con parametri YEAR, MONTH, HOUR, MINUTE e SECOND.
  • HDTTM. Con le seguenti combinazioni di parametro: "8,'HYYMDS'", "8,'HYYMDs'", e "10,'HYYMDm'".
  • HGETC.
  • HPART. Con parametri YEAR, MONTH, DAY, QUARTER, WEEKDAY, DAY-OF-YEAR, WEEK, HOUR, MINUTE, SECOND, MILLISECOND e MICROSECOND. La funzione HPART ottimizzata con il parametro WITH è compatibile con FOCUS, solo in presenza dell'impostazione WEEKFIRST=ISO2.
  • TODAY.


x
Generazione automatica di FORMAT SQL_SCRIPT per file HOLD

Questa funzione si implementa come comando SET che genera file HOLD come file SQL_SCRIPT, dove non si specifica nessun formato sul comando ON TABLE HOLD.

Nota: Se l'adattatore non è in grado di generare richieste SQL per una richiesta TABLE complessa (a causa dell complessità di espressione o altri motivi), il sistema esegue automaticamente il downgrade dell'impostazione HOLDFORMAT, in BINARY, solo per quella richiesta. Da poter usare per conversioni applicazione in SQL_SCRIPT, come procedure generate da BCEE o MFACT.



x
Verifica maiuscole/minuscole DBMS

La pagina di configurazione dell'adattatore della console web per adattatori basati su SQL presenta un pulsante che consente di verificare l'impostazioni del rilevamento delle maiuscole/minuscole del DBMS di destinazione.



x
Variabili "e" commerciale per impostazioni SQLTAG e ABORTREPORT

Le variabili che hanno i valori delle impostazioni SQLTAG e ABORTREPORT sono disponibili.

-TYPE &engine SQLTAG
-TYPE &engine ABORTREPORT

dove:

ENGINE

La tag del motore adattatore. Per esempio, DB2 per DB2, ORA per Oracle, MSS per Microsoft SQL Server, DBC per Teradata, etc.



x
Supporto Caricamento Massa Estesa per la clausola ON TABLE HOLD

Quando si usa HOLD con un FORMAT motore SQL, una nuova opzione consente di usare una procedura di caricamento massa per caricare la tabella.



x
Ottimizzazione di funzioni di caratteri semplificati

Le seguenti funzioni semplificate sono ottimizzate a SQL:

  • SUBSTRING
  • LTRIM
  • RTRIM
  • TRIM_
  • CHAR_LENGTH
  • LOWER
  • Superiore

Il Prospetto Ottimizzazione SQL fornisce informazioni di ottimizzazione per ogni funzione per adattatore.

Nota: Le funzioni semplificate sono più facili da usare sono probabilmente ottimizzate in un intervallo più ampio di motori rispetto alle funzioni legacy.



x
Adattatore per DB2

In questa sezione:

Questa sezione fornisce descrizioni dettagliate di nuove funzioni per l'adattatore per DB2.



x
Filtraggio sensibile a maiuscole/minuscole

L'impostazione del confronto server su indifferenziazione tra maiuscole e minuscole (o con SET COLLATION=SRV_CI o nella configurazione NLS) porta anche i5 DB2 sottostante ad essere indifferente a maiuscole e minuscole per connesioni IBM i DB2 locali.



x
Adattatore per C9 INC

L'adattatore per C9 INC è stato introdotto in questo release ed è disponibile come adattatore denominato sulla console web nella cartella SQL.

Questo adattatore fornisce accesso di lettura a dati Salesforce, memorizzati in C9 e supporta funzioni temporali C9, generando campi nel file principale con proprietà temporali.

DEFINE DAILY_TREND/YYMD WITH ID TEMPORAL_PROPERTY 
TREND=DB_EXPR(INTERVAL '1' DAY); TITLE='Daily Trend', $ 
DEFINE WEEKLY_TREND/YYMD WITH ID TEMPORAL_PROPERTY 
TREND=DB_EXPR(INTERVAL '1' WEEK); TITLE='Weekly Trend', $ 
DEFINE MONTHLY_TREND/YYMD WITH ID TEMPORAL_PROPERTY 
TREND=DB_EXPR(INTERVAL '1' MONTH); TITLE='Monthly Trend', $ 
DEFINE QUARTERLY_TREND/YYMD WITH ID TEMPORAL_PROPERTY 
TREND=DB_EXPR(INTERVAL '1' QUARTER); TITLE='Quarterly Trend', $ 
DEFINE YEARLY_TREND/YYMD WITH ID TEMPORAL_PROPERTY 
TREND=DB_EXPR(INTERVAL '1' YEAR); TITLE='Yearly Trend', $ 

Questi metedati consentono all'adattatore di ottimizzare una condizione predicato TABLE FILE come una clausola trending temporale durante il reporting. Per esempio:

TABLE FILE repro_nfs/OPPORTUNITY 
SUM AMOUNT EXPECTEDREVENUE 
BY DAILY_TREND 
WHERE 
DAILY_TREND FROM '2014-09-01' 
TO '2014-09-08'
END 

Ottimizzato come:

TREND FROM DATE '2014-09-01' 
TO DATE '2014-09-08' BY INTERVAL '1' DAY 
SELECT CAST(TrendDate() AS DATE), 
SUM(T1."Amount"), 
SUM(T1."ExpectedRevenue") 
FROM ads.Opportunity T1 
GROUP BY 
CAST(TrendDate() AS DATE) 
ORDER BY 
CAST(TrendDate() AS DATE); 
TABLE FILE OPPORTUNITY WRITE SUM AMOUNT 
WHERE DAILY_TREND EQ '2014-01-01' 

Risultati nella seguente query SQL:

AS OF DATE '2014-01-01' SELECT SUM(T1."Amount") FROM 
ads.Opportunity T1. 

Nota: La condizione WHERE xxx_TREND IS MISSING sarà ottimizzata come clausola C9 AS OF 'ALL'.

Un prospetto risultante da una query TABLE, contenente BY e una verifica FROM-TO, su un campo TREND, mostrerà il progresso dei totali selezionati, nel periodo di tempo specificato dalla clausola FROM-TO, con intervalli temporali specificati nella definizione del campo TREND.



x
Adattatore per Greenplum

In questa sezione:

Questa sezione fornisce descrizioni dettagliate di nuove funzioni per l'adattatore per Greenplum.



x
Supporto Caricamento Massa Estesa

DataMigrator supporta il caricamento massa estesa per EMC Greenplum usando l'utilità di caricamento Greenplum:

Inoltre, consente all'utente di impostare un delimitatore di colonna non-predefinito su un gruppo di tabelle e inoltre fornisce un migliore controllo, quando si caricano dati da un file dati CSV, specificando il/i carattere(i) specifico(i) come un nuovo separatore riga.



x
Supporto Unicode

L'adattatore per Greenplum è in grado di leggere e scrivere dati in Unicode.



x
Gli adattatori per Greenplum, Hyperstage (PG) e PostgreSQL: Mapping A256V per campi TEXT

Gli adattatori per Greenplum, Hyperstage (PG) e PostgreSQL supportano il mapping del tipo dati A256V usando la seguente impostazione:

ENGINE SQLengine SET CONVERSION LONGCHAR ALPHA n

L'impostazione influenza il mapping di tutti i campi nativi con un tipo dati di [VAR]CHAR(32767) o TEXT. Il valore di n va da 1 a 32767. Il valore predefinito è 256.



x
Adattatore per Hive

In questa sezione:

L'adattatore per Hive è stato introdotto in questo release ed è disponibile come adattatore denominato sulla console web nella cartella SQL.



x
Caricamento Massa con DataMigrator

DataMigrator è in grado di creare metadati Hive e caricarli in Hadoop usando il caricamento massa via un tipo di carico file disco.



x
Adattatore per Hyperstage

In questa sezione:

Questa sezione fornisce descrizioni dettagliate di nuove funzioni per l'adattatore per Hyperstage. Inoltre, si descrivono i vari miglioramenti di memoria e prestazione per Hyperstage.



x
Miglioramenti Prestazioni

L'aumento di utilizzo di parallelizzazione in unioni e ordinamento ha subito un miglioramento nell'abilità di eseguire query concorrenti.



x
Miglioramenti Gestione Memoria

Hyperstage ora usa la memoria in modo più efficiente. Inoltre, sono state eseguite varie modifiche, che riducono la quantità di memoria necessaria.



x
Adattatore Hyperstage ODBC

Un nuovo adattatore ODBC per Hyperstage basati su MySQL supplementa l'adattatore JDBC esistente sulla piattaforma Windows.



x
Uso di colonne dimensione denormalizzate per la ricerca in Copia Rapida

Quando si usa Copia Rapida per una unione cluster, descrivendo una raccolta di tabelle che comprendono uno schema a stella con un target Hyperstage denormalizzato, le colonne di caratteri nelle tabelle dimensione sono create con l'attributo commento di ricerca Hyperstage.



x
Supporto DataMigrator e Copia Rapida per Unicode

È possibile caricare dati Unicode ad un target Hyperstage, usando DataMigrator o Copia Rapida.



x
Adattatore per Hyperstage (PG)

In questa sezione:

L'adattatore per Hyperstage usando PostgreSQL (PG) è stato introdotto in questo release ed è disponibile come adattatore denominato sulla console web nella cartella SQL.



x

I commenti di colonna sono supportati come l'attributo DESCRIPTION sinonimo, per Hyperstage basato su PostgreSQL e per tutti gli altri motori basati su JDBC, che restituiscono informazioni di commenti di colonna in una chiamata Metadati JDBC.



x
Adattatore per i Access

L'adattatore per i Access è stato introdotto in questo release ed è disponibile come adattatore denominato sulla console web nella cartella SQL.



x
Adattatore per Informix: Supporto per SDK 4.10.x.

L'adattatore per Informix supporta Informix SDK 4.10.x.



x
Adattatore JDBC: Impostazione COMMANDTIMEOUT

Il comando COMMANDTIMEOUT si introduce per adattatori basati su JDBC, i quali driver supportano la chiamata setQueryTimeout():

SQL ENGINE SET COMMANDTIMEOUT [n] 

dove:

n

Un numero opzionale di secondi. Il valore zero (0) significa senza limite di timeout.



x
Adattatore per Microsoft SQL Server

In questa sezione:

Le seguenti funzioni sono supportate per Microsoft SQL Server in questa release.



x
Adattatore ODBC per Microsoft SQL Server

L'adattatore basato su ODBC è introdotto per Microsoft SQL Server ed è disponibile come adattatore denominato sulla console web nella cartella SQL.



x
acquisire REMARKS/DESCRIPTION/TITLE di Viste Microsoft SQL Server in sinonimi

L'adattatore per Microsoft SQL Server è in grado di recuperare e memorizzare proprietà viste (se presenti) in un file principale, come i seguenti attributi:



x
Gli adattatori per Microsoft SQL Server e Oracle supportano la clausola HINT

Gli adattatori per Microsoft SQL Server e Oracle sono in grado di velocizzare DML SELECT, specificando una clausola HINT tramite il comando SQL SET:

SQL SQLengine SET HINT hint_syntax

dove:

hint_syntax

Per esempio:

SQL SQLORA SET HINT /* +USE_HASH */ sets USE_HASH hint in Oracle;
SQL SQLORA SET HINT removes the hint that was set before.

Il comando TABLE posiziona il suggerimento alla fine della query generata per Microsoft SQL Server o dopo la parola chiave SELECT per Oracle. Il suggerimento (o combinazione suggerimento) sarà solo impostato quando l'adattatore crea una singola dichiarazione SELECT. Non avviene nel caso di una unione gestita a FOCUS.

L'utente finale è responsabile per il suggerimento o la sintassi combinazione suggerimento.



x
Adattatore per MongoDB

L'adattatore per MongoDB è stato introdotto in questo release ed è disponibile come adattatore denominato sulla console web nella cartella SQL.

Questo adattatore è per il database NoSQL MongoDB e richiede il DRIVER JDBC Unità di terze parti.



x
Adattatore per il supporto di caricamento massa estesa My SQL

DataMigrator e Copia Rapida, con un target database MySQL, ora supportano il tipo di carico Caricamento Massa Estesa, che fornisce tempistiche di carico più veloci rispetto all'elaborazione inserisci/aggiorna.



x
Adattatore per Netezza

In questa sezione:

Le seguenti funzioni sono state aggiunte per l'adattatore per Netezza.



x
Adattatore per Netezza: Acquisire Commenti Colonna come Attributo DESCRIPTION Sinonimo

L'adattatore per Netezza supporta i commenti di colonna e tabella. Da poter usare come titoli durante il processo Crea Sinonimo.



x
L'adattatore per Netezza supporta Password Passthru

L'adattatore per Netezza ora supporta l'autenticazione Password Passthru.



x
Adattatore per Oracle

In questa sezione:

Questa sezione fornisce descrizioni dettagliate di nuove funzioni per l'adattatore per Oracle.



x
creare il supporto sinonimo per vista materializzata

L'adattatore per Oracle riconosce il sinonimo Oracle per una vista materializzata come candidato e la presenta tra gli oggetti disponibili sulla pagina Crea Sinonimo Console Web.



x
Supporto per Versione 12c (Cloud)



x

L'adattatore per Oracle supporta i tipi dati stringa estesa 12c di Oracle. [N]VARCHAR2(32767) è supportato, come descritto nel Prospetto Tipi Dati SQL.



x
Adattatore per Oracle TimesTen

L'adattatore per Oracle TimesTen è stato introdotto in questo release ed è disponibile come adattatore denominato sulla console web nella cartella SQL.



x
Adattatore per SAP HANA

In questa sezione:

Le seguenti funzioni sono state aggiunte per l'adattatore per SAP HANA.



x
Adattatore per SAP HANA DB

L'adattatore per SAP HANA Database è stato introdotto in questo release ed è disponibile come adattatore denominato sulla console web nella cartella SQL.

Questo adattatore fornisce una maggiore flessibilità per l'ottimizzazione SQL, rispetto alla versione JDBC generica, usata in release precedenti.



x

L'adattatore per SAP HANA è ora possibile recuperare medatati e creare sinonimi per tipi diversi di viste HANA DB:

  • Viste
  • Viste calcoli
  • Viste OLAP
  • Viste gerarchia
  • Viste unione


x
Adattatore per SAP HANA ODBC

L'adattatore basato su ODBC viene introdotto per SAP HANA ed è disponibile come adattatore denominato sulla console web nella cartella SQL. Questo adattatore (disponibile su Windows 64-bit) supporta SSO con sicurezza Kerberos.



x
Adattatore per Sybase: Supporto per il nome di connessione

Il nome di connessione è stato aggiunto come parametro di configurazione per l'adattatore per Sybase.



x
Adattatore per Teradata

In questa sezione:

Questa sezione fornisce descrizioni dettagliate di nuove funzioni per l'adattatore per Teradata.



x
Caricamento Massa Estesa per Dati Unicode

L'adattatore per Teradata configurato con CLI Teradata Client supporta il caricamento di dati codificati UTF8 tramite Caricamento Massa Estesa.



x
Supporto per Versione 14.10

Gli adattatori Teradata CLI e ODBC supportano l'accesso di lettura/scrittura a Teradata Versione 14.10.



x
Supporto per Versione 15.0

Gli adattatori Teradata CLI e ODBC supportano l'accesso di lettura/scrittura a Teradata Versione 15.0.



x

L'adattatore per Teradata ora supporta l'accesso di lettura ai tipi dati PERIOD e INTERVAL.



x

Teradata ha introdotto Extended Object Name (EON) in v.14.1. L'adattatore per Teradata ora supporta nomi viste e tabelle (contenenti caratteri multi-byte) con una lunghezza fino a 128 byte.



x
Adattatore per Vertica DB

L'adattatore nativo basato su jdbc per Vertica (SQLVRT) è stato introdotto in questo release ed è disponibile come adattatore denominato sulla console web nella cartella SQL.


WebFOCUS