DB_LOOKUP: Recupero valori origine dati

Come:

Riferimento:

Lingue disponibili: reporting, MODIFY

È possibile usare la funzione DB_LOOKUP per recuperare un valore da una origine dati quando si esegue una richiesta rispetto ad un'altra origine dati, senza l'unione o la combinazione di due origini dati.

DB_LOOKUP paragona coppie di campi dall'origine e dalle origini dati di ricerca per localizzare record corrispondenti e per recuperare il valore da restituire alla richiesta. È possibile specificare quante coppie si desidera per arrivare al record di ricerca che presenta il valore che si desidera recuperare. Se le coppie del proprio elenco campi non porta ad un record lookup univoco, il primo record di ricerca corrispondente recuperato viene usato.

È possibile chiamare DB_LOOKUP in un comando DEFINE, comando TABLE COMPUTE e comando MODIFY COMPUTE, o nel flusso DataMigrator.

Non ci sono restrizioni sul file di origine. Il file di ricerca è in grado di essere qualsiasi origine dati FOCUS supportata come file di riferimento incrociato in una unione cluster. I campi lookup usati per trovare il record corrispondente sono soggetti a regole riguardanti campi unione di riferimento incrociato per l'origine dati di ricerca. Un file sequenziale a formato fisso è in grado di essere il file di ricerca, se ordinato nello stesso ordine del file di origine.


Inizio pagina

x
Sintassi: Come richiamare un valore da un’origine dati di ricerca
DB_LOOKUP(look_mf, srcfld1, lookfld1, srcfld2, lookfld2, ..., returnfld);

dove:

look_mf

File principale lookup.

srcfld1srcfld2 ...

Campi dal file di origine utilizzati per individuare un record corrispondente nel file di ricerca.

lookfld1lookfld2 ...

Colonne dal file di ricerca che condividono valori con i campi di origine. È possibile utilizzare solo colonne nella tabella o nel file; le colonne create con DEFINE non possono essere utilizzate. Per sinonimi multi-segmento solo le colonne nel segmento superiore possono essere utilizzate.

returnfld

Nome di una colonna nel file di ricerca il cui valore è restituito dal record di ricerca corrispondente. È possibile utilizzare solo colonne nella tabella o nel file; le colonne create con DEFINE non possono essere utilizzate.


Inizio pagina

x
Riferimento: Note per l'uso per DB_LOOKUP


Esempio: Recupero di un valore da un file sequenziale di formato fisso in una richiesta TABLE

La seguente procedura crea un file sequeziale di formato fisso chiamato GSALE dall'origine dati GGSALES. I campi in questo file sono PRODUCT (descrizione prodotto), CATEGORY (categoria prodotto) e PCD (codice prodotto). Il file viene ordinato sul campo PCD:

SET ASNAMES = ON
TABLE FILE GGSALES
SUM PRODUCT CATEGORY
BY PCD
ON TABLE HOLD AS GSALE FORMAT ALPHA
END

Il seguente file principale viene generato come risultato del comando HOLD:

FILENAME=GSALE, SUFFIX=FIX     , $
  SEGMENT=GSALE, SEGTYPE=S1, $
    FIELDNAME=PCD, ALIAS=E01, USAGE=A04, ACTUAL=A04, $
    FIELDNAME=PRODUCT, ALIAS=E02, USAGE=A16, ACTUAL=A16, $
    FIELDNAME=CATEGORY, ALIAS=E03, USAGE=A11, ACTUAL=A11, $

La seguente richiesta TABLE, rispetto all'origine dati GGPRODS, ordina il prospetto sul campo che corrisponde al campo chiave nel file di ricerca. Recupera il valore del campo CATEGORY dal file di ricerca GSALE, facendo corrispondere i campi di descrizione e codice prodotto. Notare che il comando DEFINE FILE viene cancellato alla fine della richiesta:

DEFINE FILE GGPRODS
PCAT/A11 MISSING ON = DB_LOOKUP(GSALE,  PRODUCT_ID, PCD,
         PRODUCT_DESCRIPTION, PRODUCT, CATEGORY);
END
TABLE FILE GGPRODS
PRINT PRODUCT_DESCRIPTION PCAT
BY PRODUCT_ID
END
DEFINE FILE GGPRODS CLEAR
END

Poiché il file principale GSALE non definisce il campo CATEGORY con l'attributo MISSING=ON, la colonna PCAT visualizza uno spazio vuoto in quelle righe che non presentano corrispondenze nel file di ricerca:

Product
Code
Product
PCAT
-------
-------
----
B141
Hazelnut
 
B142
French Roast
 
B144
Kona
F101
Scone
Food
F102
Biscotti
Food
F103
Croissant
Food
G100
Mug
Gifts
G104
Thermos
Gifts
G110
Coffee Grinder
Gifts
G121
Coffee Pot
Gifts

Se si aggiunge l'attributo MISSING=ON al campo CATEGORY nel file principale GSALE, la colonna PCAT visualizza un simbolo dati mancanti nelle righe che non presentano corrispondenze con il file di ricerca:

Product
Code     Product           PCAT
-------  -------           ----
B141     Hazelnut          .
B142     French Roast      .
B144     Kona              .
F101     Scone             Food
F102     Biscotti          Food
F103     Croissant         Food
G100     Mug               Gifts
G104     Thermos           Gifts
G110     Coffee Grinder    Gifts
G121     Coffee Pot        Gifts

WebFOCUS