Here is a how to pass an array ( Collection ) from java to oracle stored procedure as an IN Variable
Oracle
Create varray
CREATE OR REPLACE
TYPE EMPID IS VARRAY(1000) OF VARCHAR2(30);
/
have the created VARRAY as a invariable in your procedure
PROCEDURE EMPCREATE(EID IN EMPID,ERRMSG OUT VARCHAR2)
You can loop through the array in this way
FOR i IN 1..EID.COUNT LOOP
EMPID := EID(I) ;
END LOOP;
Java
Import the following to the database utility class
import oracle.sql.ARRAY;
import oracle.sql.ArrayDescriptor;
ArrayDescriptor empIds= ArrayDescriptor.createDescriptor("EID", );
ARRAY empIdsarray= new ARRAY(empIds, con,(Object [])v.toArray() );
// v is the vector of employee id's
It served a good purpose for me when there is a lot of data to be passed from java to oracle.The peformance improvement is tremendous .
No comments:
Post a Comment