Hi,
I'm having trouble passing arrays to and from pl/sql functions. I followed the instructions on http://www.oracle.com/technology/sample_code/tech/java/codesnippet/jdbc/varray/index.html and it works just fine as is. The problem starts when I try placing the array type and the function inside a package.
Oracle:
CREATE OR REPLACE PACKAGE TEST
IS
TYPE EMPARRAY is VARRAY(20) OF VARCHAR2(30);
...
<function>
...
END TEST;
/
Java:
...
stmt.registerOutParameter( 1, OracleTypes.ARRAY,"TEST.EMPARRAY" );
...
Error:
Exception in thread "main" java.sql.SQLException: invalid name pattern: TEST.EMPARRAY
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.oracore.OracleTypeADT.initMetadata(OracleTypeADT.java:527)
at oracle.jdbc.oracore.OracleTypeADT.init(OracleTypeADT.java:407)
at oracle.sql.ArrayDescriptor.initPickler(ArrayDescriptor.java:1952)
at oracle.sql.ArrayDescriptor.<init>(ArrayDescriptor.java:199)
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:118)
at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:176)
We have some restrictions creating types and they must be in packages in our case. Please help
Thanks!