Accéder au contenu principal Passer au contenu complémentaire

Différences au sein dles fonctionnalités

Availability-noteBêta
Les fonctionnalités suivantes sont disponibles dans les maps standards et DSQL mais ont des comportements différents.

Index dans les fonctions de boucle et de sous-chaînes de caractères

Dans des maps standards, vous pouvez vous référer à un index de boucle à l'aide de la fonction LoopIndex. Dans ce cas, l'index de la première occurrence est 1. Pour plus d'informations, consultez LoopIndex.

Dans les maps DSQL, vous pouvez vous référer à un index de boucle à l'aide du mot-clé INDEX dans une clause FROM. Dans ce cas, l'index de la première occurrence est 0. Pour plus d'informations, consultez Utiliser la clause FROM.

La même différence s'applique aux fonctions de sous-chaînes de caractères (substring). Dans la fonction Substring standard, l'index du premier caractère est 1, alors que dans la fonction subString DSQL, l'index du premier caractère est 0.

Regroupement

Dans les maps standards, vous pouvez grouper des éléments à l'aide de la fonctionnalité Distinct dans la fonction SimpleLoop. Cette fonctionnalité retourne les groupes dans l'ordre dans lequel les valeurs de l'élément de groupe ont été trouvées dans les données d'entrée. Pour plus d'informations, consultez SimpleLoop.

Dans les maps DSQL, vous pouvez grouper des éléments avec la clause GROUP BY. Les groupes sont retournés sans ordre défini. Pour plus d'informations, consultez Utiliser la clause GROUP BY.

Boucles déroulées et boucles scindées

Dans les maps DSQL, lorsque vous avez déroulé ou scindé une boucle, les boucles créées ne supportent pas les fonctionnalités suivantes :
  • clauses LET et SET pour définir une variable
  • Expressions conditionnelles

Ces fonctionnalités peuvent tout de même être utilisées sur la boucle originale.

Formatage de chaînes de caractères

Lorsqu'un élément d'entrée contient une valeur nulle et que l'élément de sortie est une chaîne de caractères non nullable, les maps standards retournent une chaîne de caractères vide. Dans les maps DSQL, l'attribut Nullable est ignoré est une valeur nulle est retournée.

Formatage des nombres

  • Lorsque les données d'entrée ne correspondent pas à une contrainte numérique, les map standards produisent un avertissement et continuent leur traitement, alors que les maps DSQL produisent une exception et arrêtent leur traitement.
  • Lorsqu'une valeur numérique est formatée comme une chaîne de caractères avec une taille fixe en sortie, des espaces sont ajoutés à droite de la valeur (right-padded) dans les maps standards et des zéros sont ajoutés à gauche de la valeur (left-padded) dans les maps DSQL.
  • Dans les maps DSQL, les expressions numériques concernant des fractions sont gérées avec le type de données Float. Lorsque l'élément de sortie est défini comme Decimal sans échelle explicite, le résultat préserve l'échelle du type Float. Ce n'est pas le cas des maps standards. Par exemple, si le résultat de l'expression est 0.20000000298023224, la map DSQL retourne cette valeur, tandis que la map standard retourne 0.2. Vous pouvez utiliser la fonction formatNumber dans les maps DSQL pour formater la sortie.

Tableaux vides imbriqués

Les maps standards et DSQL se comportent différemment lorsqu'elles rencontrent un tableau vide lors d'une itération sur des tableaux imbriqués.

Par exemple, avec l'entrée JSON suivante, l'objectif est de l'aplatir pour obtenir un tableau d'enregistrements, chaque enregistrement contenant un nom de famille et un prénom.
[
	{
		"lastname" : "Cruise",
		"firstnames" : [ "Tom", "Robert" ]
	},
	{
		"lastname" : "Ford",
		"firstnames" : [ ]
	}
]
Avec une map standard, cela s'effectue à l'aide de la fonction SimpleLoop itérant sur le tableau racine et un NestedContext avec une fonction SimpleLoop itérant sur le tableau firstnames. Dans ce cas, la map retourne le résultat suivant :
[
  {
    "lastname": "Cruise",
    "firstname": "Tom"
  },
  {
    "lastname": "Cruise",
    "firstname": "Robert"
  },
  {
    "lastname": "Ford",
    "firstname": ""
  }
]
Cependant, avec une map DSQL, utiliser une clause FROM suivie d'une clause UNNEST produit le résultat suivant :
[
   {
      "lastname": "Cruise",
      "firstname": "Tom"
   },
   {
      "lastname": "Cruise",
      "firstname": "Robert"
   }
]

Dans le cas de la map DSQL, le nom de famille Ford est ignoré car le tableau correspondant firstnames est vide, ce qui signifie qu'il n'y avait pas d'élément sur lequel effectuer l'itération.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !