ORA-01830: date format de l'image se termine avant la conversion de la totalité de la chaîne d'entrée en CRAPAUD
J'ai un script dans lequel je suis en train d'écrire des fonctions et des procédures. Le script fonctionne très bien dans Oracle SQL developer, sans erreurs ou des avertissements. Ce script que j'ai à fournir à un client et côté client. Le client utilisateur exécute le même script dans TOAD
et il obtient le message d'erreur
ORA-01830: date format picture ends before converting entire input string
Dans cette situation, je ne sais vraiment pas comment gérer de telles erreurs. Est-ce un bug TOAD
?
J'utilise to_date
et to_timestamp
dans mes fonctions et là, je reçois un message d'erreur.
Il serait utile d'afficher votre code. Mais vous êtes en s'appuyant sur NLS_DATE_FORMAT quelque part, et que le fait d'avoir des valeurs différentes dans les deux clients est à l'origine du comportement différent. Ne jamais compter sur elle, toujours utiliser des masques de format...
Merci Alex pour ta réponse. Mon code de fonction est très grand thts pourquoi je n'ai pas oublier mon code et j'ai utilisé to_date et to_timestamp dans mes fonctions où je suis à l'origine du problème. Je ne comprends pas votre point explicite format maska signifie ? Et oui j'ai changer le NLS_DATE_FORMAT paramètres dans mon sql developer pour obtenir la valeur d'horodatage. Mais comment résoudre ce problème dans TODE ?
Ne changez pas le NLS_DATE_FORMAT dans votre client de ne pas compter sur elle, passer la même valeur que vous avez définie (par exemple
Merci Alex je vais vérifier la documentation et d'essayer de résoudre ce problème.
Merci Alex pour ta réponse. Mon code de fonction est très grand thts pourquoi je n'ai pas oublier mon code et j'ai utilisé to_date et to_timestamp dans mes fonctions où je suis à l'origine du problème. Je ne comprends pas votre point explicite format maska signifie ? Et oui j'ai changer le NLS_DATE_FORMAT paramètres dans mon sql developer pour obtenir la valeur d'horodatage. Mais comment résoudre ce problème dans TODE ?
Ne changez pas le NLS_DATE_FORMAT dans votre client de ne pas compter sur elle, passer la même valeur que vous avez définie (par exemple
'DD/MM/YYYY HH24:MI:SS'
) à to_date()
comme deuxième argument; le fmt de la documentation.Merci Alex je vais vérifier la documentation et d'essayer de résoudre ce problème.
OriginalL'auteur Namrata | 2015-06-12
Vous devez vous connecter pour publier un commentaire.
Vous êtes soit en s'appuyant sur la date implicite des conversions ou implicite format de modèles; puisque vous avez dit que vous êtes en utilisant
to_date
etto_timestamp
il semble être le dernier. Vous n'avez pas indiqué votre code, mais l'erreur implique que vous êtes l'appel de ces fonctions avec une chaîne de valeur dans le format que vous vous attendez à voir, mais pas explicitement de fournir le modèle de format comme le deuxième argument de la fonction. Qui sera la cause de la session du NLS_DATE_FORMAT paramètre à utiliser. Si vous n':alors vous êtes vraiment en fait:
Vous ne pouvez pas contrôler la façon dont votre client NLS environnement configuré, et vous ne devez jamais compter sur les conversions implicites ou NLS hypothèses.
Comme il est dit dans la documentation:
Vous pouvez voir comment cela affecte d'une requête simple avec ceci:
Pour la même raison, vous devriez éviter les noms des mois que leur interprétation dépend de la NLS_DATE_LANGUAGE; si vous pouvez au moins remplacer que lors de la requête de niveau, si vous avez vraiment pour.
Vous pouvez également envisager la date et l'horodatage des littéraux si vous travaillez avec des valeurs fixes:
mais si vous êtes à la construction de la chaîne à convertir à une date qui ne sera pas approprié.
OriginalL'auteur Alex Poole