Hi,
don't let the name confuse you, the ORACLE_8I reader/writer works just fine with Oracle 12, as long as you have the Oracle 12 client libraries installed :-)
David
Hi,
Thanks for your help, but it is not the writer/reader i am playing with. Is the SQLExecutor, and the connection parameters in it.
At the same workspace i have an SDE30 writer that works fine. But if i use the same parameters on the SQLexecutor to connect witht the oracle database i get this message:
Error connecting to Oracle database: message was `ORA-12154: TNS:could not resolve the connect identifier specified'. (serverType=`ORACLE8i', serverName=`blablabla.sde', userName=`username', password=`***', dbname=`')
any idea?
Thanks in advance!
Hi,
The SQLExecutor and the reader/writer is based on the same underlying technology in FME.
For the SQLExecutor, you cannot use the SDE connection file, you have to either use a registered service name (see the file TNSNAMES.ORA in your Oracle client installation) or a connection string on the form
user/password@//hostname:port/sid
For more info, see:
http://fmepedia.safe.com/articles/FAQ/How-to-setup-an-Oracle-Instant-Client-for-use-with-FME#heading_toc_j_0
David
Yes! that helped me! I got connected but only with Oracle Non-spatial, if I try with spatial i cannot get Database tables on Parameters / SQL Statement. But I can manage the table that i need (non spatial data)
What i did: i am working with FME2014 so i could not use the easy connection
Format:Oracle Non-spatial
Dataset:: <tnsname from tnsnames.ora>
Service: will automatically fill in with dataset <tnsname from tnsnames.ora>
Username:<blablabla>
password:<****>
Uncheck "Persistent Connection"
Thanks a lot David!
Heisann,
good to hear that you got it working. Just be aware that you cannot (normally) read SDE Geodatabase geometries data with an Oracle Spatial reader, so that is as expected.
David
We replaced arcpy-script (due to version conflicts) with following plsql:
create or replace function generate_version_fme(version_name_in in varchar2)
RETURN VARCHAR2
IS
version_name VARCHAR2(97); BEGIN
select version_name_in into version_name FROM DUAL;
sde.version_user_ddl.create_version ('SOMEPARENTVERSION', version_name, sde.version_util.C_take_name_as_given, sde.version_util.C_version_protected, 'My version comment');
RETURN version_name;
END;
Then from SQLExecutor, just call:
SELECT generate_version_fme('myVersionStringABC') FROM DUAL;
Or, you could make it parameterized