java.sql.BatchUpdateException: ORA-00932: 数据类型不一致? 怎么回事啊?

demo大师粉丝 2006-08-17 02:34:07
CREATE TYPE "HZSMS2"."STRING_ARRAY" AS VARRAY (5000) OF
VARCHAR2(5000)

------
conn.setAutoCommit(false);
//
oracle.sql.ARRAY ora_array1=null,ora_array2=null,ora_array3=null,ora_array4=null;

oracle.sql.ArrayDescriptor arrayDesc1 =
oracle.sql.ArrayDescriptor.createDescriptor("STRING_ARRAY", conn);
oracle.sql.ArrayDescriptor arrayDesc2 =
oracle.sql.ArrayDescriptor.createDescriptor("STRING_ARRAY", conn);


String sql = "insert into t_test (PHONE,OP_ID)";
sql += " values (?,?)";
pstmtInsert = conn.prepareStatement(sql);

String array1[] = new String[30000];
String array2[] = new String[30000];

for (int i = 0; i < 30000; i++) {
array1[i] = "666";
array2[i] = "88";
}

ora_array1 = new oracle.sql.ARRAY(arrayDesc1, conn, array1);
ora_array2 = new oracle.sql.ARRAY(arrayDesc2, conn, array2);

pstmtInsert.setArray(1, ora_array1);
pstmtInsert.setArray(2, ora_array2);

pstmtInsert.addBatch();

int[] upCounts = pstmtInsert.executeBatch();
conn.commit();

---------
java.sql.BatchUpdateException: ORA-00932: 数据类型不一致

at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:498)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:1236
8)
。。。。。
...全文
607 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
nighthawk 2006-08-17
  • 打赏
  • 举报
回复 1
检查你的数据库字段类型是否与你插入的类型相匹配

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧