我正在尝试使用java代码调用以下过程,但是我得到了几个错误(基本上是为了类型转换)我在某个地方搞砸了我可以有人看看它。
这是我第一次这样做。
一点帮助就会很棒。
PROC:
DECLARE
car__details_tab car__details_tab_type := NEW car__details_tab_type();
car_id number_tab_type;
car_error_tab car__error_tab_type := new car__error_tab_type();
car_purchase_id NUMBER;
BEGIN
car__details_tab.extend;
car__details_tab(car__details_tab.count) := car__details_type(null,
null
,null
,null
,null
);
car__details_tab(car__details_tab.COUNT).model_id := AW0;
car__details_tab(car__details_tab.COUNT).brand := 'LAM';
car__details_tab(car__details_tab.COUNT).version := 1;
car__details_tab(car__details_tab.COUNT).type := 'Sedan';
pckg.ins_trade_details(car__details_tab => car__details_tab
,car_purchase_id => 101
,user => 'Test'
,car_id_tab => car_id
,car_error_tab => car_error_tab);
DBMS_OUTPUT.PUT_LINE(car_purchase_id);
IF car_error_tab.EXISTS(1)
THEN
FOR i IN 1 .. car_error_tab.COUNT
LOOP
dbms_output.put_line(car_error_tab(i).model_id);
dbms_output.put_line(car_error_tab(i).version);
dbms_output.put_line(car_error_tab(i).version);
dbms_output.put_line(car_error_tab(i).error_text);
END LOOP;
END IF;
Java代码
public void save(String DataSource,int Id,String username,String[] car__details_tab_type) throws SQLException{
Connection con = getConnection(DataSource);
CallableStatement cs= con.prepareCall({call pckg.save_details(?,?,?,?,?)});
Object[] project1 = new Object[]{AWO,"LAM,1,"SEDAN"};
Object[] project2 = new Object[]{AWO,"LAM,1,"SEDAN"};
StructDescriptor projectTypeDesc = StructDescriptor.createDescriptor("CAR__DETAILS_TAB_TYPE", con);
STRUCT structProject1 = new STRUCT(projectTypeDesc, con, project1);//THIS IS WHERE I GET THE ERROR
STRUCT structProject2 = new STRUCT(projectTypeDesc, con, project2);
STRUCT[] structArrayOfProjects = {structProject1,structProject2};
ArrayDescriptor projectTypeArrayDesc = ArrayDescriptor.createDescriptor("CAR__DETAILS_TAB_TYPE", con);
ARRAY arrayOfProjects = new ARRAY(projectTypeArrayDesc, con, structArrayOfProjects);
cs.setArray(1, details);
cs.setInt(2, Id);
cs.setString(3, username);
cs.registerOutParameter(4, java.sql.Types.ARRAY);
cs.registerOutParameter(5, java.sql.Types.ARRAY);
cs.execute();
}
错误
java.sql.SQLException:java和sql对象类型不一致