CHKPCK: Convalida di un campo compresso

Come:

Lingue disponibili: reporting, Maintain

La funzione CHKPCK convalida i dati in un campo descritto come formato compresso (se disponibile sulla propria piattaforma). La funzione previene l'avvenimento di una eccezione dati quando una richiesta legge un campo che dovrebbe avere un numero compresso valido, ma non lo contiene.

Per usare CHKPCK:

  1. Assicurarsi che il file principale (attributi USAGE e ACTUAL) definisce il campo come alfanumerico, non compresso. Questa azione non modifica i dati campo, che rimangono compressi, ma abilita la richiesta di leggere i dati senza una eccezione dati.
  2. Chiamare CHKPCK per esaminare il campo. La funzione restituisce l'emissione ad un campo definito come compresso. Se il valore in esaminazione è un numero compresso valido, la funzione restituisce il valore; se il valore non è compresso, la funzione restituisce un codice di errore.

Inizio pagina

x
Sintassi: Come convalidare un campo compresso
CHKPCK(length, in_value, error, output)

dove:

length

Numerico

La lunghezza delcampo compresso. Può essere compresa tra 1 e 16 byte.

infield

Alfanumerico

Il nome del campo compresso o del valore da verificare come decimale compresso. Il valore deve essere descritto come alfanumerico e non compresso.

errore

Numerico

Codice errore che la funzione restituisce se un valore non è in formato compresso. Scegliere un codice errore esterno al di fuori dell'intervallo di dati. Il codice errore è troncato prima su un numero intero, quindi convertito come formato compresso. Tuttavia, potrebbe apparire su un prospetto con un punto decimale a seconda del formato di emissione.

emissione

BCD (Binary-Coded Decimal)

Nome del campo che contiene il risultato o formato del valore di emissione racchiuso tra virgolette singole”.



Esempio: Convalida dati compressi
  1. Preparare una origine dati che include dati compressi validi. Il seguente esempio crea TESTPACK, che contiene il campo PACK_SAL. PACK_SAL viene definito come alfanumerico ma, in effetti, contiene dati compressi. I dati compressi invalidi sono memorizzati come AAA.
    DEFINE FILE EMPLOYEE
    PACK_SAL/A8 = IF EMP_ID CONTAINS '123'
          THEN 'AAA' ELSE PCKOUT(CURR_SAL, 8, 'A8');
    END
    TABLE FILE EMPLOYEE
    PRINT DEPARTMENT PACK_SAL BY EMP_ID
    ON TABLE SAVE AS TESTPACK
    END

    L'emissione è:

     NUMBER OF RECORDS IN TABLE=       12  LINES=     12 
    ALPHANUMERIC  RECORD NAMED  TESTPACK 
    FIELDNAME                         ALIAS          FORMAT        LENGTH
    EMP_ID                            EID            A9               9 
    DEPARTMENT                        DPT            A10             10 
    PACK_SAL                                         A8               8 
    TOTAL                                                            27
  2. Creare un file principale per l'origine dati TESTPACK. Definire il campo PACK_SAL come alfanumerico negli attributi USAGE e ACTUAL.
    FILE  = TESTPACK,  SUFFIX = FIX
    FIELD = EMP_ID    ,ALIAS = EID,USAGE = A9 ,ACTUAL = A9 ,$
    FIELD = DEPARTMENT,ALIAS = DPT,USAGE = A10,ACTUAL = A10,$
    FIELD = PACK_SAL  ,ALIAS = PS ,USAGE = A8 ,ACTUAL = A8 ,$
  3. Creare una richiesta che usa CHKPCK per convalidare i valori nel campo PACK_SAL e memorizzare il risultato nel campo GOOD_PACK. I valori non in formato compresso restituiscono il codice errore -. I valori non in formato compresso appaiono correttamente.\, -999, '
    DEFINE FILE TESTPACK
    GOOD_PACK/P8CM = CHKPCK(8, PACK_SAL, -999, GOOD_PACK); 
    END
    TABLE FILE TESTPACK
    PRINT DEPARTMENT GOOD_PACK BY EMP_ID
    END

    L'emissione è:

    EMP_ID     DEPARTMENT    GOOD_PACK 
    ------     ----------    --------- 
    071382660  PRODUCTION      $11,000 
    112847612  MIS             $13,200 
    117593129  MIS             $18,480 
    119265415  PRODUCTION       $9,500 
    119329144  PRODUCTION      $29,700 
    123764317  PRODUCTION        -$999 
    126724188  PRODUCTION      $21,120 
    219984371  MIS             $18,480 
    326179357  MIS             $21,780 
    451123478  PRODUCTION        -$999 
    543729165  MIS              $9,000 
    818692173  MIS             $27,062

WebFOCUS