Question

Error converting C string to OCI number - maybe FME 2013 bug?

  • 17 January 2014
  • 3 replies
  • 4 views

Hello

 

 

I have an FME process that connects to Oracle, reads X and Y coordinates from a table, find attributes in layers and writes data back to a different table in the same Oracle database. The X and Y attributes are defined as a NUMBER with three decimal places in both tables.

 

 

It worked well in FME Desktop 2011 SP2. A few weeks ago I upgraded to FME Desktop 2013 SP 1, opened and run the same workspace, but it displayed a warning on some records like:

 

 

|WARN  |Error converting from C character string to OCI number : `OCI-22062: invalid input string [-.351]'

 

 

And FME did not write th evalue to the table. The error occurred for all values > -1 and < 0. In the above case the actual value in the table was -0.351. I don't know much of FME but assume that after reading the numeric value FME converts it to a string and then converts it back to a number before writing to the target table.

 

 

If I use the Oracle function TO_CHAR(-0.351), it returns the string '-.351' but when I use the opposite Oracle function TO_NUMBER('-.351') it returns the correct number -0.351

 

I added a StringReplacer to my process to add '0' before the decimal point when needed and the process runs successfully but I wonder if it is a bug in 2013 since it worked properly in previous versions?

 

 

I run both versions of FME Desktop,  2011 and now 2013, in the same environment - Windows 7 64-bit with Oracle client 11.2

 

 

Witold

3 replies

Userlevel 2
Badge +17
Hi,

 

 

It looks like a bug unfortunately. How's FME 2014? If there is a special reason for using FME 2013, I think it's necessary to think of a workaround. e.g. StringReplacer as you mentioned, or StringFormatter etc.

 

 

Takashi
Thanks for the reply.

 

I don't have access to FME 2014 yet so cannot test it. The workaround works.

 

 

Witold
Hello,

 

 

I'm experiencing the same symptom (=error) when trasferring data from table A to table B and converting from SDO_GEOMETRY (srid 294914) to SDO_GEOMETRY (srid 3067).

 

 

Is it possible that FME (2012 sp 4) is confused by the contents of a VARCHAR2 column which seems to contain awkward characters ('¿')  

 

and that there is actually nothing wrong with the geometry ?

 

 

Esko

Reply