PATTERN: Como Gerar um Padrão a partir de uma String

Como:

A função PATTERN examina uma string de origem e produz um padrão que indica a sequência de números, letras maiúsculas e minúsculas na string de origem. Esta função é útil para a verificação de dados com o objetivo de garantir que o padrão está sendo seguido.

No padrão de saída:


Topo da página

x
Sintaxe: Como Gerar um Padrão a partir de uma String de Entrada
PATTERN (length, source_string,  output)

onde:

comprimento

Numérico

É o comprimento de source_string.

source_string

Alfanumérico

É a string pai colocada entre aspas simples ou um campo contendo a string pai.

saída

Alfanumérico

É o nome do campo que contém o resultado ou o formato do campo entre aspas simples.



Exemplo: Como Produzir um Padrão a partir de Dados Alfanuméricos

Os seguintes 19 registros são armazenados em um arquivo sequencial de formato fixo (com LRECL 14) chamado TESTFILE:

212-736-6250
212 736 4433
123-45-6789
800-969-INFO
10121-2898
10121
2 Penn Plaza
917-339-6380
917-339-4350
(212) 736-6250
(212) 736-4433
212-736-6250
212-736-6250
212-736-6250
(212) 736 5533
(212) 736 5533
(212) 736 5533
10121 Æ
800-969-INFO

O Arquivo Master é:

FILENAME=TESTFILE, SUFFIX=FIX     ,            
  SEGMENT=TESTFILE, SEGTYPE=S0, $              
    FIELDNAME=TESTFLD, USAGE=A14, ACTUAL=A14, $

A solicitação a seguir gera um padrão para cada ocorrência de TESTFLD e exibe-as pelo padrão que foi gerado. Ela exibe a contagem de cada padrão e sua porcentagem da contagem total. O comando PRINT mostra quais valores de TESTFLD geraram cada padrão.

FILEDEF TESTFILE DISK testfile.ftmDEFINE FILE TESTFILE
   PATTERN/A14 = PATTERN (14, TESTFLD, 'A14' ) ;
END
TABLE FILE TESTFILE
  SUM CNT.PATTERN AS 'COUNT' PCT.CNT.PATTERN AS 'PERCENT'
   BY PATTERN
 PRINT TESTFLD
   BY PATTERN
ON TABLE COLUMN-TOTAL
END

Observe que linha próxima à última produziu um padrão a partir da string de entrada que contém um caractere não imprimível para que o caractere fosse alterado para X. Além disso, cada dígito numérico gerou um 9 na string de saída, cada letra maiúscula gerou o caractere 'A' e cada minúscula, o caractere 'a'. A saída é:

PATTERN         COUNT  PERCENT  TESTFLD
-------         -----  -------  -------
(999) 999 9999      3    15.79  (212) 736 5533
                                (212) 736 5533
                                (212) 736 5533
(999) 999-9999      2    10.53  (212) 736-6250
                                (212) 736-4433
9 Aaaa Aaaaa        1     5.26  2 Penn Plaza
999 999 9999        1     5.26  212 736 4433
999-99-9999         1     5.26  123-45-6789
999-999-AAAA        2    10.53  800-969-INFO
                                800-969-INFO
999-999-9999        6    31.58  212-736-6250
                                917-339-6380
                                917-339-4350
                                212-736-6250
                                212-736-6250
                                212-736-6250
99999               1     5.26  10121
99999 X             1     5.26  10121 Æ
99999-9999          1     5.26  10121-2898
TOTAL              19   100.00

Information Builders