Skip to main content
Question

How to write data into Oracle SDE tables that have mix case column names?


aguan
Contributor
Forum|alt.badge.img+11
  • Contributor

I have an Oracle SDE table created from MS Integration Service. The table has columns with mixed upper and lower cases. Look like FME data write into this table only looks for upper cased column names and I got this ORA-00904: invalid identifier error for all columns. We won't want to change the column names to be all upper case. Is there a workaround for this?

11 replies

erik_jan
Contributor
Forum|alt.badge.img+18
  • Contributor
  • October 9, 2017

If table or attribute names are mixed case, you need to enter them in double quotes, like "Table".


aguan
Contributor
Forum|alt.badge.img+11
  • Author
  • Contributor
  • October 9, 2017
erik_jan wrote:

If table or attribute names are mixed case, you need to enter them in double quotes, like "Table".

@erik_jan. Not sure what you mean. The table is already created (with double quotes on column names to make them case sensitive). My question is how to make FME workspace write data into this table as FME seems to match the upper case column names for Oracle/

 


erik_jan
Contributor
Forum|alt.badge.img+18
  • Contributor
  • October 9, 2017
aguan wrote:
@erik_jan. Not sure what you mean. The table is already created (with double quotes on column names to make them case sensitive). My question is how to make FME workspace write data into this table as FME seems to match the upper case column names for Oracle/

 

I was pretty sure you could do this in the past:

 

 

But now that seems to get changed in:

 

 

I would send this to Support@Safe.com.

 

Seems to be unwanted behavior.

 

 


david_r
Celebrity
  • October 10, 2017

When creating the writer, make sure that you've un-checked the box for upper case column names:

For the table name, no use in putting it in quotation marks, the table name case is respected regardless.

Tested with FME 2017.1


erik_jan
Contributor
Forum|alt.badge.img+18
  • Contributor
  • October 10, 2017
david_r wrote:

When creating the writer, make sure that you've un-checked the box for upper case column names:

For the table name, no use in putting it in quotation marks, the table name case is respected regardless.

Tested with FME 2017.1

Good catch @david_r,

 

But in the FME 2017 Oracle Spatial writer that does not exist (only for columns):

 


david_r
Celebrity
  • October 10, 2017
erik_jan wrote:
Good catch @david_r,

 

But in the FME 2017 Oracle Spatial writer that does not exist (only for columns):

 

Yes, there is no such option for the table names, only for the columns, but according to my tests that isn't necessary since the tablenames are created with the exact case used in FME. Or am I misunderstanding something?

erik_jan
Contributor
Forum|alt.badge.img+18
  • Contributor
  • October 10, 2017
david_r wrote:
Yes, there is no such option for the table names, only for the columns, but according to my tests that isn't necessary since the tablenames are created with the exact case used in FME. Or am I misunderstanding something?
Even with this setting unchecked, when I leave the table name field it changes to uppercase. Sure at some older version it didn't.

 

 


david_r
Celebrity
  • October 10, 2017
erik_jan wrote:
Even with this setting unchecked, when I leave the table name field it changes to uppercase. Sure at some older version it didn't.

 

 

Aha, I see now. You're right, the tablename is forced to upper case when using the Oracle Spatial writer. If you're using the Oracle Non-Spatial writer, you can use mixed case table names.

 

Thanks for clearing that up!

steveatsafe
Safer
Forum|alt.badge.img+12
  • Safer
  • October 10, 2017
Hi @ag . Have you submitted this to Support?

 

Curious if you can confirm - "Oracle SDE" and want to ensure you are using an Oracle Writer or are you using an SDE or Geodatabase Writer? When I see 'SDE' I think Esri and thus SDE30 or Geodatabase Writers might be involved here.

 


steveatsafe
Safer
Forum|alt.badge.img+12
  • Safer
  • October 10, 2017

@ag, On the outside chance that this is essentially a non-spatial Oracle table you are writing to, you could use the SQLExecutor and build the insert statement in there, double quote the attribute names.


aguan
Contributor
Forum|alt.badge.img+11
  • Author
  • Contributor
  • October 11, 2017

Sorry not making this clear, The writer is an ArcSDE Geodatabase in Oracle.This upper case column option is only avaliabke for Oracle non-spatial or Oracle spatial. Tried double quoting attribute names before data entering the writer, not working. Always this ORA-00904: invalid identifier error unless I recreated the feature class using all upper cased column names.


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings