I have a procedure with the signature below.
CREATE OR REPLACE PACKAGE BODY MYSCHEMA.MYPACK
AS
PROCEDURE GETBOX (DSSO_BoxNumber IN VARCHAR2,
CreateDateTime OUT tCreateDateTime,
ReceiptDateTime OUT tReceiptDateTime,
CSCBoxNumber OUT tCSCBoxNumber,
DSSOBoxNumber OUT tDSSOBoxNumber,
PackID OUT tPackID,
RequestID OUT tRequestID,
ExceptionID OUT tExceptionID,
Name OUT tName,
FolderID OUT tFolderID,
ClosedDateTime OUT tClosedDateTime,
OpenStatus OUT tOpenStatus,
RequestOpenStatus OUT tRequestOpenStatus,
RETURNED OUT tRETURNED)
...
The cutom type definitions are as below.
CREATE OR REPLACE PACKAGE MYSCHEMA.MYPACK
AS
TYPE tCreateDateTime is TABLE of VARCHAR2(15)
INDEX BY BINARY_INTEGER;
TYPE tReceiptDateTime is TABLE of VARCHAR2(15)
INDEX BY BINARY_INTEGER;
TYPE tCSCBoxNumber is TABLE of VARCHAR2(20)
INDEX BY BINARY_INTEGER;
TYPE tDSSOBoxNumber is TABLE of VARCHAR2(20)
INDEX BY BINARY_INTEGER;
TYPE tPackID is TABLE of VARCHAR2(20)
INDEX BY BINARY_INTEGER;
TYPE tRequestID is TABLE of VARCHAR2(20)
INDEX BY BINARY_INTEGER;
TYPE tExceptionID is TABLE of VARCHAR2(20)
...
Can anyone please help, how to register the out parameters in java?
I have tried the following, but no luck.
cs.setString(1, "XYZ123");
cs.registerOutParameter(2, Types.ARRAY,"MYSCHEMA.MYPACK.tCreateDateTime");
...
Getting the below error.
java.sql.SQLException: invalid name pattern: MYSCHEMA.MYPACK.tCreateDateTime
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.oracore.OracleTypeADT.initMetadata(OracleTypeADT.java:463)
at oracle.jdbc.oracore.OracleTypeADT.init(OracleTypeADT.java:362)
at oracle.sql.ArrayDescriptor.initPickler(ArrayDescriptor.java:1756)
at oracle.sql.ArrayDescriptor.<init>(ArrayDescriptor.java:272)
...
We have checked that the schema has access to the procedure and it is defined in the master schema. We also have tried by creating public synonym for this package. Still not working..