Question

Null values in Oracle GEOM column

  • 30 November 2015
  • 8 replies
  • 6 views

Badge

In Oracle, i have a column called GEOM of SDO_GEOMETRY type. After running FME, GEOM column containing NULL values it is not getting populated.Could you please help me?


8 replies

Badge +2

Hi,

If you are adding attributes with SQLExecutor then consider the "Initiator" port instead of result.

If you are adding geometry with SQLExecutor then review the options you have selected in SQL Executor.

Pratap

Badge

@pratap in the sql executor i have used, iam just retreving a value from non_spatial table. is it the reason why iam getting null in geometry column?if it is the reason can you help me in getting out of that issue?

Badge +2

@gouthami

Since you are extracting the attribute then I hope you are using Format as "Oracle Non-spatial" so use the "Initiator" port instead of "Result" port as well as in "Combine Attributes" option select "Keep Initiator Attributes if conflict" as you are extracting new attribute, this option will not affect any new extracted attributes

Userlevel 2
Badge +12

As you are using a SQLExecutor FME will add a format attribute oracle_geometry containing no_geom as a value. When writing to Oracle FME will use this format attribute. Removing the format attribute using the BulkAttributeRemover with parameter oracle* will force FME to use the fme attribute fme_geometry that contains the correct geometry type.

Badge

@gouthami

Since you are extracting the attribute then I hope you are using Format as "Oracle Non-spatial" so use the "Initiator" port instead of "Result" port as well as in "Combine Attributes" option select "Keep Initiator Attributes if conflict" as you are extracting new attribute, this option will not affect any new extracted attributes

In That Scenario, whatever the attribute iam selecting from "Oracle Non-spatial" object wont get reflected through Initiator Port.

Badge +2

Oops, Yes, Before the below steps place an inspector and check whether geometry is the translation result or not at before and after SQLExecutor, If geometry is the result then...

Below are the steps while creating writer and hope you have already placed it correctly...

1. Check whether the writer you have used is "Oracle Spatial Object"

2. While defining the writer, have you specified the Geometry Column as GEOM

Based on Geometry

3. Check the type of geometry it is passing to writer (i.e. line/point)

4. Define "oracle_type" with an attribute creator

Badge

Thank you @pratap ....it's working

Badge +2

As you are using a SQLExecutor FME will add a format attribute oracle_geometry containing no_geom as a value. When writing to Oracle FME will use this format attribute. Removing the format attribute using the BulkAttributeRemover with parameter oracle* will force FME to use the fme attribute fme_geometry that contains the correct geometry type.

Thanx Erik-Jan, brilliant remark as always. Actually, it was oracle_nil. Now I replaced the value with oracle_area.

Reply