Verificacao de Duplicados

De Wiki REDDES

Tabla de contenidos

PARÂMETRO JOIN DO UTILITÁRIO MX



O parâmetro JOIN permite que um ou vários registros da mesma ou outras bases de dados sejam juntados ao registro que está sendo processado no momento.

Com a ajuda desse parâmetro é possível também verificar se há registros duplicados em determinada base de dados.

No registro de saída serão acrescentados todos os campos dos registros referenciados (ou campos selecionados destes) e, além disto, serão criados campos de controle com a informação do processamento (numerados a partir de 32001).



Sintaxe

join=<mf>[:<offset>][,<taglist>]=<mfn=_fmt>

<mf> = Uma base de dados alternativa na qual se buscarão registros para juntar com o registro que está sendo processado. A base alternativa poderia ser a mesma dos dados de entrada.

[:<offset>] = Deslocamento para os tags joined.

[,<taglist>] = Uma lista dos campos que serão extraídos dos registros da base alternativa para anexar ao registro de entrada. Se não for especificada a lista, todos os campos que existem nos registros encontrados serão juntados. Os campos de dados do registro encontrado poderão ser numerados.

<mfn=_fmt> = Formato com o qual o registro de entrada é lido para extrair chaves com as quais os registros da base de dados alternativa serão buscados. Pode ser um formato explícito ou a referência para um arquivo externo.


Exemplo:

mx MARCIA "join=LILACS,1200:12,1800:18,650:65=if p(v12) then s(mhu,v12.20,v14,v65,mhl) else s(mhu,v18.20,v20,v65,mhl) fi,

OBS: O procedimento supõe que a base alternativa LILACS tem um arquivo invertido no qual se poderá encontrar as chaves produzidas pelos registros da base MARCIA, ao serem lidos com a especificação do formato que foi especificado (nesse caso: if p(v12) then s(mhu,v12.20,v14,v65,mhl) else mhu,v18.20,v20,v65,mhl) fi,


Descrição:

1. Pega cada registro da base de dados MARCIA.

2. Para cada registro gerado pela especificação do formato mhu,(v70/), realiza uma busca na base LILACS.

3. Se encontrar algum registro na base LILACS, cria um campo de controle e acrescenta os campos que foram selecionados deste ao registro que está sendo processado.



Lista de seleção e renumeração de campos <tags>

Seleção:

Podem ser selecionados campos do registro alternativo das seguintes formas:

  • Indicando os números de campos e separando-os por vírgula;
mx MARCIA "join=LILACS,1,2,3=if p(v12) then s(mhu,v12.20,v14,v65,mhl) else s(mhu,v18.20,v20,v65,mhl) fi,
  • Indica-se um intervalo de campos, usando valor inferior/valor superior.
mx MARCIA "join=LILACS,1/10=if p(v12) then s(mhu,v12.20,v14,v65,mhl) else s(mhu,v18.20,v20,v65,mhl) fi,

Renumeração:

Indica-se o novo número de um campo, especificando como número novo:número antigo.

mx MARCIA "join=LILACS,1200:12,1800:18,650:65=if p(v12) then s(mhu,v12.20,v14,v65,mhl) else s(mhu,v18.20,v20,v65,mhl) fi,

OBS: Como regra geral, indique primeiro a seleção de campos a extrair e depois as renumerações, que podem incluir campos indicados na seleção prévia.



Conteúdo dos campos de controle (32001, 32002, etc.)

Os campos com tag 32001, 32002, etc. são gerados pelo MX para registrar o processamento do JOIN.

São nesses campos de controle que verificamos se existe ou não registros duplicados na base de dados.

Exemplo:

32001  «LILACS^l2^kINDICADORES DE MORBI2^L720040000^o1^m1110»

Subcampos do campo 32001:

LILACS = nome da base alternativa.

^l[1|2] = Subárvore do arquivo invertido de onde a chave foi extraída:

  • 1 para termos até 10 caracteres de tamanho.
  • 2 para termos entre 11 e 30.

^k = Chave com a qual foi feita a busca.

^o = Número de ocorrências da chave.

^m = MFN do registro da base alternativa da qual procedem os dados que são acrescentados ao registro original. Se não for encontrado o termo no dicionário da base alternativa, este subcampo não é gerado.

Herramientas personales