PATTERN: Cómo generar un patrón a partir de una cadena

Cómo:

La función PATTERN examina una cadena de origen y produce un patrón que indica la secuencia de números, las mayúsculas y las minúsculas, en la cadena de origen. Esta función es útil a la hora de examinar datos y comprobar que siguen el patrón estándar.

En el patrón de salida:


Principio de página

x
Sintaxis: Cómo Generar un patrón a partir de una cadena de entrada
PATTERN (length, source_string,  output)

donde:

length

Numérico

Es la longitud de source_string.

source_string

Alfanumérico

Es la cadena de origen, entre comillas simples, o un campo que la contiene.

output

Alfanumérico

Es el nombre del campo que contendrá el resultado o el formato del campo entre comillas simples.



Ejemplo: Cómo producir un patrón a partir de datos alfanuméricos

Los 19 registros siguientes están guardados en un archivo secuencial de formato fijo (con LRECL 14) llamado 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   

El archivo máster es:

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

La siguiente solicitud genera un patrón por cada caso de TESTFLD, y lo muestra de acorde al patrón generado. La solicitud muestra la suma de cada patrón y su porcentaje con respecto a la suma total. El comando PRINT muestra los valores de TESTFLD que generaron cada patrón.

FILEDEF TESTFILE DISK testfile.ftm 
DEFINE 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                                         

Tenga en cuenta que la penúltima línea ha generado un patrón a partir de una cadena de entrada con un carácter no imprimible, que se ha convertido en una X. Por otro lado, cada dígito numérico ha generado un 9 en la cadena de salida, cada letra mayúscula ha generado el carácter ‘A’ y cada minúscula, el carácter ‘a’. La salida es:

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