BASE DE CONNAISSANCES

Erreur : "ORA-01861: literal does not match format string" en cas d'utilisation de la fonction DATE() avec Oracle


Date de publication : 23 Jan 2017
Date de dernière modification : 04 Jan 2019

Problème

Si vous utilisez la fonction DATE() dans un champ calculé avec une source de données Oracle, l'erreur suivante peut se produire :

ORA-01861: literal does not match format string (ORA-01861 : l'expression littérale ne correspond pas à la chaîne de format)

Environnement

  • Tableau Desktop
  • Oracle

Résolution

Utilisez la fonction DATEPARSE() au lieu de la fonction DATE().

Par exemple, si le calcul DATE() est :
DATE( STR ([Year]) + "-" + STR([Month]) + "-1" )

Le calcul correspondant DATEPARSE() serait :

​DATEPARSE("yyyy-mm-dd", (STR ([Year]) + "-" + STR([Month]) + "-1" ))

Cause

Cette erreur a lieu lorsqu'une expression littérale est entrée avec une chaîne de format, mais que la longueur de cette chaîne n'est pas la même que l'expression littérale. Ceci peut parfois se produire dans Tableau Desktop lorsque vous utilisez la fonction DATE() avec une base de données Oracle. 
Cet article vous a-t-il permis de résoudre le problème ?