Table des matières

Search

  1. Préface
  2. Le langage de transformation
  3. Constantes
  4. Opérateurs
  5. Variables
  6. Dates
  7. Fonctions

Référence du langage de transformation

Référence du langage de transformation

IS_DATE

IS_DATE

Indique si une valeur de chaîne est une date valide. Une date valide est n'importe quelle chaîne dans la partie de date au format date/heure spécifié dans la session. Si la chaîne que vous voulez tester n'est pas au format de date, utilisez la chaîne de format TO_DATE pour spécifier le format de date. Si les chaînes transmises à IS_DATE ne correspondent pas à la chaîne de format spécifiée, la fonction renvoie FALSE (0). Si les chaînes correspondent à la chaîne de format, la fonction renvoie TRUE (1).
IS_DATE évalue les chaînes et renvoie une valeur entière.
Le port de sortie d'une expression IS_DATE doit être un type de données chaîne ou numérique.
Vous pouvez utiliser IS_DATE pour tester ou filtrer les données dans un fichier plat avant de les écrire dans une cible.
Utilisez la chaîne de format RR avec IS_DATE au lieu de la chaîne de format YY. Dans la plupart des cas, les deux chaînes de format renvoient les mêmes valeurs, mais il existe certains cas exceptionnels où YY renvoie des résultats incorrects. Par exemple, l'expression IS_DATE(‘02/29/00’, ‘YY’) est calculée en interne comme IS_DATE(02/29/1900 00:00:00), qui renvoie false. Cependant, le
Service d'intégration de données
calcule l'expression IS_DATE(‘02/29/00’, ‘RR’) comme IS_DATE(02/29/2000 00:00:00), qui renvoie TRUE. Dans le premier cas, l'année 1900 n'est pas bissextile, il n'existe donc pas de 29 février.
IS_DATE utilise les mêmes chaînes de format que TO_DATE.

Syntaxe

IS_DATE(
value
[,
format
] )
Le tableau suivant décrit les arguments de cette commande:
Argument
Obligatoire/
Facultatif
Description
valeur
Obligatoire
Doit être un type de données String. Transmet les lignes à évaluer. Vous pouvez entrer l'expression de transformation valide de votre choix.
format
Facultatif
Entrez une chaîne de format TO_DATE valide. La chaîne de format doit correspondre aux parties de l'argument
chaîne
. Par exemple, si vous passez la chaîne 'Mar 15 1997 12:43:10AM', vous devez utiliser la chaîne de format 'MON DD YYYY HH12:MI:SSAM'. Si vous omettez la chaîne de format, la valeur de chaîne doit être au format de date spécifié dans la configuration du mappage.

Valeur de retour

TRUE (1) si la ligne est une date valide.
FALSE (0) si la ligne n'est pas une date valide.
NULL si une valeur dans l'expression est nulle ou si la chaîne de format est nulle.
Le format de la chaîne IS_DATE doit correspondre à la chaîne de format, y compris les séparateurs de date. Si ce n'est pas le cas, le
Service d'intégration de données
peut renvoyer des valeurs non précises ou ignorer l'enregistrement.

Exemples

L'expression suivante recherche les dates valides pour le port INVOICE_DATE :
IS_DATE( INVOICE_DATE )
Cette expression renvoie des données similaires aux suivantes :
INVOICE_DATE
RETURN VALUE
NULL
NULL
'180'
0 (FALSE)
'04/01/98'
0 (FALSE)
'04/01/1998 00:12:15.7008'
1 (TRUE)
'02/31/1998 12:13:55.9204'
0 (FALSE)   (
February does not have 31 days
)
'John Smith'
0 (FALSE)
L'expression IS_DATE suivante spécifie une chaîne de format « YYYY/MM/DD » :
IS_DATE( INVOICE_DATE, 'YYYY/MM/DD' )
Si la valeur de chaîne ne correspond pas à ce format, IS_DATE renvoie FALSE :
INVOICE_DATE
RETURN VALUE
NULL
NULL
'180'
0 (FALSE)
'04/01/98'
0 (FALSE)
'1998/01/12'
1 (TRUE)
'1998/11/21 00:00:13'
0 (FALSE)
'1998/02/31'
0 (FALSE)   (
February does not have 31 days
)
'John Smith'
0 (FALSE)
L'exemple suivant illustre l'utilisation de IS_DATE pour tester des données avant d'utiliser TO_DATE pour convertir les chaînes en dates. Cette expression vérifie les valeurs dans le port INVOICE_DATE et convertit chaque date valide en valeur de date. Si la valeur n'est pas une date valide, le
Service d'intégration de données
renvoie ERROR et ignore la ligne.
Cet exemple renvoie une valeur Date/Heure. Par conséquent, le port de sortie pour l'expression doit être Date/Heure :
IIF( IS_DATE ( INVOICE_DATE, 'YYYY/MM/DD' ), TO_DATE( INVOICE_DATE ), ERROR('Not a valid date' ) )
INVOICE_DATE
RETURN VALUE
NULL
NULL
'180'
'Not a valid date'
'04/01/98'
'Not a valid date'
'1998/01/12'
1998/01/12
'1998/11/21 00:00:13'
'Not a valid date'
'1998/02/31'
'Not a valid date'
'John Smith'
'Not a valid date'