java.sql.SQLException: ORA-01002: fetch out of sequence

这几天写了一个从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);

实例:
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();

你可能感兴趣的:(java,oracle,sql,C++,c)