CallableStatement.setTimestamp() Results In PLS-00307 With Overloaded Stored Procedure

(Doc ID 1668651.1)

Last updated on MARCH 08, 2017

Applies to:

JDBC - Version and later
Information in this document applies to any platform.


WebLogic application makes a JDBC call to a stored procedure.
The Stored procedure is overloaded, ie, same name, different parameter type:
a) One takes Int
b) One takes String
c) One takes Date

- In weblogic 9 and 10.3 (JDBC, when doing a CallableStatement.setTime(), the value getting saved in the database has the Date and Time component as expected.
- In weblogic 12C (JDBC , when setting CallableStatement.setTime(), the Date component is being set as Jan 1, 1970, but carries over the accurate Time value.
a. If setDate is used, only the date value is being set in the database, no Time value.
b. If setTimestamp is used, an ORA run time exception is received: PLS-00307: too many declarations of 'UTL_AUDIT_CHANGE' match this call
See below for the full stack trace:

java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00307: too many declarations of 'UTL_AUDIT_CHANGE' match this call
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

  at oracle.jdbc.driver.T4CTTIoer.processError(
  at oracle.jdbc.driver.T4CTTIoer.processError(
  at oracle.jdbc.driver.T4C8Oall.processError(
  at oracle.jdbc.driver.T4CTTIfun.receive(
  at oracle.jdbc.driver.T4CTTIfun.doRPC(
  at oracle.jdbc.driver.T4C8Oall.doOALL(
  at oracle.jdbc.driver.T4CCallableStatement.doOall8(
  at oracle.jdbc.driver.T4CCallableStatement.executeForRows(
  at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(
  at oracle.jdbc.driver.OraclePreparedStatement.execute


Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms