这几天写了一个从sqlserver读取数据将text属性的字段值转换到oracle的clob字段中操作oracle的时候出现以下错误:
java.sql.SQLException: ORA-01002: fetch out of sequence
jdbc的规则 不能违反顺序读取
解决方案1:
手动提交设置
conn.setAutoCommit(false);
conn.commit(); //在每一个rs读取的地方提交
conn.setAutoCommit(true);
实例:
java.sql.SQLException: ORA-01002: fetch out of sequence
jdbc的规则 不能违反顺序读取
解决方案1:
手动提交设置
conn.setAutoCommit(false);
conn.commit(); //在每一个rs读取的地方提交
conn.setAutoCommit(true);
实例:
Statement st = conn1.createStatement();
//插入一个空对象empty_clob()
st.executeUpdate(strSql[0]);//sql根据配置文件结合sqlserver表动态生成
//锁定数据行进行更新,注意“for update”语句
ResultSet rs = st.executeQuery(strSql[1]);//sql根据配置文件结合sqlserver表动态生成
if (rs.next())
{
//得到java.sql.Clob对象后强制转换为oracle.sql.CLOB
oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob(DATA_Oraclefield1[0]);
Writer outStream = clob.getCharacterOutputStream();
//data是传入的字符串,定义:String data
char[] c = strSql[2].toCharArray();
outStream.write(c, 0, c.length);
outStream.flush();
outStream.close();
conn1.commit();
//向目标文件写入总数
A_num1++;
totalnumber++;//本次一共循环次数
CurrentNumber++;
//写入配置文件记录当前执行点,以提供可能出现的断点续传
CRFile.writeProperties("",new String[]{"A_num","A_Provisional"},new String[]
{A_num1+"",totalnumber+""},"");
}
rs.close();
st.close();