Problems calling stored procedure when changing DataSource class

I’m trying to call a stored procedure by creating an Adapter Service in Developer. When using oracle.jdbc.pool.OracleDataSource as DataSource class for my JDBC Adapter, it works fine, but when I change the DataSource class to com.wm.dd.jdbcx.oracle.OracleDataSource, I get problems:

If I set Enable Procedure Name Lookup to TRUE, and select my procedure from the drop down list, the procedure name is surrounded by " and is prefixed with a . (like .“procedurename”), and this gives me the following error:

com.wm.app.b2b.server.ServiceException: [ART.117.4002] Adapter Runtime (Adapter Service): Unable to invoke adapter service PackageName.AdapterName:serviceName.
[ADA.1.316] Cannot execute the SQL statement “{? = call .“procedurename” (?, ?, ?, ?) }”. "
(42000/911) [wm-cjdbc40-0034][Oracle JDBC Driver][Oracle]ORA-00911: invalid character
"
[wm-cjdbc40-0034][Oracle JDBC Driver][Oracle]ORA-00911: invalid character

If I set Enable Procedure Name Lookup to FALSE, and select my procedure from the drop down list, the procedure name looks right (without . and ", like it is when I use oracle.jdbc.pool.OracleDataSource), but then I get the following error:

com.wm.pkg.art.error.DetailedSystemException: [ART.117.4002] Adapter Runtime (Adapter Service): Unable to invoke adapter service PackageName.AdapterName:serviceName.
[ADA.1.316] Cannot execute the SQL statement “{? = call procedurename (?, ?, ?, ?) }”. "
(HY000/6550) [wm-cjdbc40-0034][Oracle JDBC Driver][Oracle]ORA-06550: line 1, column 18:
PLS-00382: expression is of wrong type
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
"
[wm-cjdbc40-0034][Oracle JDBC Driver][Oracle]ORA-06550: line 1, column 18:
PLS-00382: expression is of wrong type
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

All other settings are the same. Are there any differences between the two DataSource classes so that I have to change some settings? The procedure returns a ORACLECURSOR.

hi,

I’m not aware of the data source class “com.wm.dd.jdbcx.oracle.OracleDataSource”, most of time we use the other one “oracle.jdbc.pool.OracleDataSource”.

As you mentioned the store procedure returns Oracle Cursor, there is a reference in JDBC Adapter guide (section: known limitations) that Stored Procedures with Signatures do not work with Oracle Cursors defined as strong type.

Can you share the advantage/benefit of using the data source class “com.wm.dd.jdbcx.oracle.OracleDataSource”? against “oracle.jdbc.pool.OracleDataSource”.

-regards,
DC