Oracle 自定义存储过程JAVA调用
Oracle 10g 自定义存储过程,在JAVA调用遇到个问题:
java.sql.SQLException: 无效的名称模式: TEST.VARCHAR_LIST
以下是SQL语句:
create table Temp_Tab1 (id int );
CREATE OR REPLACE
TYPE B_VARCHAR2 AS VARRAY(10000) OF VARCHAR2(255);
CREATE OR REPLACE PACKAGE return_output_test as
TYPE VARCHAR_LIST IS TABLE OF VARCHAR2(32767) INDEX BY BINARY_INTEGER;
PROCEDURE return_output (p_input_iccid_array IN B_VARCHAR2);
END return_output_test;
CREATE OR REPLACE PACKAGE BODY return_output_test AS
PROCEDURE return_output (p_input_iccid_array IN B_VARCHAR2)
AS
va_iccid VARCHAR_LIST;
BEGIN
BEGIN
FOR idx IN p_input_iccid_array.first..p_input_iccid_array.last LOOP
INSERT INTO TEMP_TAb1 VALUES (p_input_iccid_array(idx));
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Exception occured');
END;
END return_output;
END return_output_test;
以下是JAVA语句:
java.lang.Class.forName("oracle.jdbc.driver.OracleDriver");
String connectionString_tOracleSP_1 = "jdbc:oracle:thin:@"
+ "192.168.30.49" + ":" + "1521" + ":" + "test";
java.sql.Connection connection_tOracleSP_1 = java.sql.DriverManager
.getConnection(connectionString_tOracleSP_1, "test","test");
OraclePreparedStatement statement_tOracleSP_1 = (OraclePreparedStatement)connection_tOracleSP_1
.prepareCall("{call "
+ "return_output_talend.return_output" + "(?)}");
String [] arr = {1,2,3,4,5};
ArrayDescriptor oracleVarchar2Collection = ArrayDescriptor.createDescriptor("VARCHAR_LIST",connection_tOracleSP_1);
//这句话告诉我 java.sql.SQLException: 无效的名称模式: TEST.VARCHAR_LIST
ARRAY ora_card_number = new ARRAY (oracleVarchar2Collection, connection_tOracleSP_1, arr );
statement_tOracleSP_1.setObject(1, ora_card_number);
哪位大侠告诉一声,什么问题?