DB_LOOKUP: Como Obter Valores da Fonte de Dados

Como:

Referência:

Linguagens Disponíveis: Reporting, MODIFY

Você pode utilizar a função DB_LOOKUP para obter um valor a partir de uma fonte de dados durante a execução de uma solicitação que utiliza outra fonte de dados sem unir ou combinar as duas fontes.

A função DB_LOOKUP compara pares de campos da fonte e das fontes de dados de pesquisa para localizar registros correspondentes e obter o valor para enviar à solicitação. Você pode especificar quantos pares desejar para alcançar o registro de pesquisa que possui o valor que você deseja obter. Se os seus pares de lista de campo não chegarem a um único registro de pesquisa, o primeiro registro correspondente obtido será utilizado.

DB_LOOKUP pode ser chamado em um comando DEFINE, TABLE COMPUTE, MODIFY COMPUTE ou fluxo DataMigrator.

Não há restrições no arquivo fonte. O arquivo de pesquisa pode ser qualquer fonte de dados não FOCUS com suporte como o arquivo de referência cruzada em uma união em cluster. Os campos de pesquisa utilizados para encontrar o registro correspondente estão sujeitos às regras sobre campos de união de referência cruzada para a fonte de dados de pesquisa. Um arquivo sequencial de formato fixo pode ser o arquivo de pesquisa caso seja classificado na mesma ordem que o arquivo fonte.


Topo da página

x
Sintaxe: Como Recupere um Valor de uma Fonte de Dados de Pesquisa
DB_LOOKUP(look_mf, srcfld1, lookfld1, srcfld2, lookfld2, ..., returnfld);

onde:

look_mf

É o Arquivo Master de pesquisa.

srcfld1, srcfld2 ...

São campos do arquivo de origem usados para localizar um registro correspondente no arquivo de pesquisa.

lookfld1, lookfld2 ...

São colunas do arquivo de pesquisa que compartilham valores com os campos de origem. Só podem ser usadas colunas na tabela ou arquivo; não é possível usar colunas criadas com DEFINE. Para sinônimos de vários segmentos só podem ser usadas colunas no segmento superior.

returnfld

É o nome de uma coluna no arquivo de pesquisa cujo valor é retornado do registro de pesquisa correspondente. Só podem ser usadas colunas na tabela ou arquivo; não é possível usar colunas criadas com DEFINE.


Topo da página

x
Referência: Observações sobre o Uso para a Função DB_LOOKUP


Exemplo: Como Obter um Valor de um Arquivo Sequencial de Formato Fixo em uma Solicitação TABLE

O procedimento a seguir cria um arquivo sequencial de formato fixo chamado GSALE a partir da fonte de dados GGSALES. Os campos neste arquivo são PRODUCT (descrição do produto), CATEGORY (categoria do produto) e PCD (código do produto). O arquivo é classificado no campo PCD:

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

O Arquivo Master a seguir é gerado como resultado do 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, $

A solicitação TABLE a seguir na fonte de dados GGPRODS classifica o relatório no campo que corresponde ao campo da chave no arquivo de pesquisa. O comando DEFINE obtém o valor do campo CATEGORY a partir do arquivo de pesquisa GSALE correspondendo os campos de código de produto e descrição de produto. Observe que o comando DEFINE FILE está limpo no fim da solicitação:

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

O Arquivo Master GSALE não define o campo CATEGORY com o atributo MISSING=ON. Portanto, a coluna PCAT exibe um espaço em branco nestas linhas que não possuem um registro correspondente no arquivo de pesquisa:

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 você adicionar o atributo MISSING=ON ao campo CATEGORY do Arquivo Master GSALE, a coluna PCAT exibirá um símbolo de dados ausentes nas linhas que não possuem registros correspondentes no arquivo de pesquisa:

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

Information Builders