gpt4 book ai didi

java - 使用串联和 Varray 将值插入表中

转载 作者:行者123 更新时间:2023-12-01 18:10:28 25 4
gpt4 key购买 nike

这是我的代码,其中 METHODARGDATATYPE_VARRAY 是表中第五列的变量,第一列具有与“t”连接的自动生成的序列。

 String arrayElements[] = { "Test3", "Test4" };
ArrayDescriptor desc = ArrayDescriptor.createDescriptor
("METHODARGDATATYPE_VARRAY", conn);
ARRAY newArray = new ARRAY(desc, conn, arrayElements);

String sql="insert into TestCaseIDDetails values (concat('t',TestCaseID_sequence.nextval),?,?,?,?)";
PreparedStatement ps =
conn.prepareStatement (sql);
ps.setString(2,testCaseIDandDetailsBean.getClass_name()) ;
ps.setString(3,testCaseIDandDetailsBean.getMethod_name()) ;
ps.setString(4,testCaseIDandDetailsBean.getMethodReplacement()) ;
((OraclePreparedStatement)ps).setARRAY (5, newArray);

ps.execute ();

我尝试执行此代码,但我再次收到如下错误:

      java.sql.SQLException: Invalid column index
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.driver.OraclePreparedStatement.setARRAYInternal(OraclePreparedStatement.java:5906)
at oracle.jdbc.driver.OraclePreparedStatement.setARRAY(OraclePreparedStatement.java:5898)
at implementation.TestCaseIDandDetailsDAOImpl.addTestCaseIDandDetails(TestCaseIDandDetailsDAOImpl.java:54)
at implementation.TestCaseIDandDetailsDAOImpl.main(TestCaseIDandDetailsDAOImpl.java:134)

我的表格脚本是:

     CREATE or replace TYPE METHODARGDATATYPE_VARRAY AS VARRAY(20) OF varchar2(30);
create table TestCaseIDDetails(
testcaseID varchar2(20) primary key,
classname varchar2(20) not null,
methodname varchar2(20) not null,
MethodReplacement char(2) check(MethodReplacement in ('y','n')),
MethodArgDataType METHODARGDATATYPE_VARRAY);

Create sequence TestCaseID_sequence minvalue 1 start with 1 increment by 1 ;

最佳答案

索引应对应于准备好的语句中问号占位符的索引,而不是表中的列号。第一个问号的索引是1,第二个问号的索引是2,依此类推。您的索引全部减一,应该是 1 2 3 4 而不是 2 3 4 5。

关于java - 使用串联和 Varray 将值插入表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33429848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com