My Oracle Support Banner

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

Last updated on AUGUST 30, 2023

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 '<NAME>' 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 '<NAME>' 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




To view full details, sign in with your My Oracle Support account.

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

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.