banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Wed 20 May 2009 10:49

nat43
Participant actif
Date d'inscription: 13 Mar 2008
Messages: 94

[FME 2008] - Message d'erreur lors d'un traitement pour Oracle 10g

Bonjour,

Je fais un traitement FME tout bête. J'utilise FME pour passer des données d'une table Oracle à une autre table Oracle. J'utilise FME car c'est plus simple pour faire la correspondance des champs. Et en plus j'utilise un compteur. Bref ...

Mon soucis, c'est que pour chaque enregistrement, j'ai une erreur :

Error converting from C character string to OCI number : `OCI-21560: argument 3 Null, non valide ou hors limites

Je pensais qu'il y avait certains champs qui bloquaient le traitement ou autre. Mais, j'ai beau supprimer des champs, toujours le même message.
Je ne sais pas trop d'où ça vient, car en plus, ça rempli ma table quand même.

Mais, je voulais savoir si ce message vous disait quelque chose ? De plus, est ce que c'est normal que FME interprète comme du Float un champ alors que j'ai du Nomber dans Oracle ?

Merci beaucoup pour votre aide et vos avis.

Hors ligne

 

#2 Wed 20 May 2009 13:00

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: [FME 2008] - Message d'erreur lors d'un traitement pour Oracle 10g

Aloha
selon la docu Oracle 10g :

OCI-21560: argument string is null, invalid, or out of range
    Cause: The argument is expecting a non-null, valid value but the argument value passed in is null, invalid, or out of range. Examples include when the LOB/FILE positional or size argument has a value outside the range 1 through (4GB - 1), or when an invalid open mode is used to open a file, etc.
    Action: Check your program and correct the caller of the routine to not pass a null, invalid or out-of-range argument value.


Donc, vérifiez dans le traitement FME si vous avez bien positionnez un tester de valeur non nulle. Sinon, positionnez en un, et normalement cela devrait passer sans problème.


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#3 Wed 20 May 2009 14:11

nat43
Participant actif
Date d'inscription: 13 Mar 2008
Messages: 94

Re: [FME 2008] - Message d'erreur lors d'un traitement pour Oracle 10g

Merci de votre réponse.

J'ai réussi à identifier les champs qui posaient problème. Ce sont des coordonnées X Y contenus dans deux champs X et Y en Number (10,3). Dans ma table oracle source comme dans ma table oracle de destination, les champs ont la même structure. J'ai vérifié s'il n'y avait pas de valeurs nulles, et il n'y en a pas.

Donc, je ne comprends pas ...

Hors ligne

 

#4 Wed 20 May 2009 15:39

Matthieu-VEREMES
Participant actif
Lieu: Montpellier
Date d'inscription: 9 Jan 2008
Messages: 97
Site web

Re: [FME 2008] - Message d'erreur lors d'un traitement pour Oracle 10g

Bonjour,

On dirait un champ de type texte en entrée attendu en tant que champ de type numérique en sortie d'où le message d'erreur.
Un "StringFormatter", paramètre "d" pour un entier, devrait aider.
Ça pourrait être également une virgule dans vos données qu'il faut remplacer par un point (StringReplacer).

Il faut localiser le ou les champs entrainant cette erreur, leur type et leur contenu puis le type attendu en sortie.


Matthieu Ambrosy
Veremes : support FME & version française
support at veremes point com

Hors ligne

 

#5 Mon 25 May 2009 09:24

nat43
Participant actif
Date d'inscription: 13 Mar 2008
Messages: 94

Re: [FME 2008] - Message d'erreur lors d'un traitement pour Oracle 10g

Bonjour,

J'ai rajouté sur mon poste client une clé de registre NLS_NUMERIC_CHARACTERS (.,), et je n'ai plus de soucis pour migrer mes données X et Y. Cependant, j'ai un problème, c'est que le champ Geometrie ne migre pas. Normal ou pas normal ? Je ne sais pas comment le récupérer d'une table à l'autre. Je précise que les champs Y et Y sont indépendant de la géométrie qui est de type polygone.

Une idée ?

Merci pour vos réponses.

Dernière modification par nat43 (Mon 25 May 2009 12:06)

Hors ligne

 

#6 Wed 27 May 2009 15:07

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: [FME 2008] - Message d'erreur lors d'un traitement pour Oracle 10g

Peut-on avoir un desc des deux tables ?
Merci.


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#7 Wed 27 May 2009 15:19

nat43
Participant actif
Date d'inscription: 13 Mar 2008
Messages: 94

Re: [FME 2008] - Message d'erreur lors d'un traitement pour Oracle 10g

Bonjour,

En fait, j'ai peut-être trouvé le problème !! C'est un problème de srid. J'utilise un srid Oracle que FME ne connaît pas pour le Lambert93.
Car, j'ai essayé avec du Lambert 2 étendu où mon srid Oracle est le même que dans FME, et en utilisant le srid 2154 pour le Lambert 93, et les traitements se font correctement.
J'ai seulement un problème sur le champ Geometrie qui ne se rempli pas.

D'ailleurs, je me demandais comment était FME gérait ces codes de srid ?! On peut en ajouter ?

Merci pour vos réponses !

Hors ligne

 

#8 Tue 02 June 2009 11:48

Matthieu-VEREMES
Participant actif
Lieu: Montpellier
Date d'inscription: 9 Jan 2008
Messages: 97
Site web

Re: [FME 2008] - Message d'erreur lors d'un traitement pour Oracle 10g

Bonjour c'est une bonne question.
Quand vous indiquez une projection en sortie (jeu de données), FME va lire un fichier de correspondances entre le nom de la projection FME et le SRID Oracle. Ce fichier est :
C:\Program Files\FME\Reproject\Exceptions\oracle.db (à ouvrir avec un éditeur de texte).
Vous pouvez modifier ce fichier si nécessaire (le fichier est lu de haut en bas, donc mettez vos modifications en tête).

Sans passer par ce fichier, vous pouvez indiquer une projection FME au niveau du jeu de données destination et un SRID de votre choix dans les paramètres du type d'entités (la table). Les données auront la bonne projection et Oracle sera renseigné avec le SRID choisi (la table de correspondance n'est alors pas utilisée).

Dernière modification par Matthieu-VEREMES (Tue 02 June 2009 11:49)


Matthieu Ambrosy
Veremes : support FME & version française
support at veremes point com

Hors ligne

 

Pied de page des forums

Powered by FluxBB