September 9, 2021
CF2016, Oracle 19c and Stored Procedures Calls
Comments
(3)
September 9, 2021
CF2016, Oracle 19c and Stored Procedures Calls
Newbie 5 posts
Followers: 2 people
(3)

We are testing a ColdFusion app running on 2016 against an Oracle 19c database server.  All stored procedure calls are resulting in the following error

Error Executing Database Query.
ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to ‘GET_USER_TYPES’ ORA-06550: line 1, column 7: PL/SQL: Statement ignored

This error does not happen with the identical software running against Oracle 12 (same CFML, Stored Procedures).  We have updated the JDBC driver to the latest available.

3 Comments
2021-09-15 14:41:16
2021-09-15 14:41:16

Thanks for responding Charlie.

You understand correctly.  The only changes that took place were;

The application database changed from oracle 12 to oracle 19c.  The application using the native CF driver began to fail at this time.  We downloaded and configured a dsn connection using the current Oracle OJDBC driver without resolve.  We manually walked through the stored procedures on Oracle 19c and executed them without issue in Oracle’s SQL console mimicking the input the CF application would be passing.  I also was able to created the same query in a cfquery statement and was able to successfully get results.  It is only executing the stored procedures that is problematic.

Returning the same application to use the Oracle 12 database works without issue.

So the good news is we resolved the situation by moving the application to CF2018 and using the native coldfusion oracle datasource configuration/driver.  Fortunately the target production environment is 2018 so we expect no production problems.  I’m still concerned the CF2016 was unable to successfully execute the stored procedures.

Like
(1)
>
AustinValley
's comment
2021-09-15 15:28:33
2021-09-15 15:28:33
>
AustinValley
's comment

Ah, ok. Thanks for clarifying, and glad you’re working again.

So first, CF2016 never did “formally” support Oracle 19c, but some did find that some things worked. Indeed, you’re confirming that even just a regular cfquery worked (even if it was calling an CP) whereas cfstoredproc did not.

I can clarify that support for 19c was added only to CF2018 and 2021 in their updates in Mar 2021 (updates 11 and 1, respecifvely). For example, see:

https://helpx.adobe.com/coldfusion/kb/coldfusion-2018-update-11.html

But to be clear, CF2016 did NOT get 19c support in its update 17 that was also released that day–and as that it was the last update for CF2016, the bottom line is that CF2016 will never have formal support for 19c. (I didn’t have this info in mind when I replied yesterday, but I did some digging based on your sharing how things worked with CF2018, and I confirmed the above.)

Hope that’s helpful, for you and future readers.

Like
2021-09-14 11:57:20
2021-09-14 11:57:20

I don’t recognize that specific family in the call the get_user_types, but (as you may have found) the rest of that error indicates that whatever is calling it, it does or exist.

So let’s dig further: it’s not clear. Are you saying NOTHING else had changed (from when it was working with CF2016 to when it failed with this for you in CF2016)? Nothing except changing the cf dsn to point to a new version of Oracle? You’re saying the cf code was previously on the same box, with the same cf2016 version as weeks or months before? No cf updates recently applied in recent days or weeks nor jvm updates, nor OS updates?

And in updating the driver, are you using a 3rd party driver, via the “other” driver type for the cf dsn? And you were before?

Finally, since you say it happens on ALL sp calls, are you saying you’ve confirmed a non-sp call DOES work?

There are still more questions I could raise, but let’s see if these or any observations from others may get you to a solution, or move the ball down the field for you, or if your answers may give us more to chew on.

Like
Add Comment