Skip to main content
Hello!

 

 

I have two questions concerning the SQL Executor:

 

 

1. If I use the SQL Executor to make a select to an oracle spatial object database, the rows which contain umlauts aren't found.

 

 

The select looks like:

 

 

select * from hk_hauskoordinaten

 

where plz_postleitzahl like

 

and postal_strname like

 

and hausnummer like

 

 

If now e.g. postal_strname (= street name) is like Mühlweg or like Schulstraße, there isn't a result given by the sql Executor. If I make the same select in the oracle database developer I get a result.

 

 

I'm using FME Version 2013.

 

 

Do I have to change the codepage or the character encoding?

 

 

 

2. In a second workspace I'm using the SQL Executor with select * ... Here   I can't expose attributes from the sql query. Also there is no result given, if I don't expose at least one attribut (using a published parameter).

 

 

 

Thanks for your help!

 

 

Isabell
Hi Isabell,

 

 

umlauts and special characters should, in principle, work without any special treatment in the SQLExecutor. However, character sets can be tricky and there are a lot of factors involved, such as:

 

  • the locale settings of your machine
  • the encoding of the input data (unicode, code pages, etc)
  • the type and config of the database client driver on your machine
  • the locale settings of the database server
  • the type and config of the database
  • the field and index type used in the table in question
As you can see, most of these have little to do with FME...

 

 

Normally, the SQLEexcutor will echo the first one or two calls to the database to the log window. I suggest you start by looking there to see if the umlauts are printed correctly. Feel free to post an extract of the log here.

 

 

David
Hey David,

 

 

thanks for your quick reply.

 

 

I tried the same with an SQLCreator, but I can't get the rows with umlauts from the database (in a simple select).

 

 

Here's what's in the log file:

 

 

SQLExecutor(QueryFactory): Performing query against ORACLE8I dataset `abt4ora'

 

ORACLE Reader: Using Oracle 8 SC Reader to read tables from database `', server type `ORACLE8i', server name `abt4ora', user name `ATKISINFO', password `***'

 

ORACLE Reader: Using Rich geometry.

 

Loaded module 'OCI' from file 'OCI.dll'

 

Environment variable ORACLE_HOME is not set.

 

Connecting to ORACLE database `abt4ora' with user name of `ATKISINFO' and password of `***'

 

Connected to ORACLE database `abt4ora'

 

Oracle database version is '11.1.0.6.0'

 

Environment variable ORACLE_HOME is not set.

 

Connecting to ORACLE database `abt4ora' with user name of `ATKISINFO' and password of `***'

 

Connected to ORACLE database `abt4ora'

 

ORACLE Reader: Executing SQL Statement `select * from hk_hauskoordinaten

 

where PLZ_postleitzahl like '63820'

 

and postal_strname like 'Mühlweg'

 

and hausnummer like '22'' to obtain features for feature type `QueryFactory_SQLExecute'

 

... Last line repeated 2 times ...

 

 

I just saw that the characterset of the oracle client in the registry is differing from the characterset in the database.

 

 

Could this be the problem?

 

 

Regards

 

 

Isabell

 


Hi,

 

 

it should be ok to have different character sets on the server and on the client, it's quite common.

 

 

Have you defined NLS_LANG for the Oracle client? Have a look here for details.

 

 

David

Reply