Tag Archives: RETURN

ORA-600(13030)错误

在ITPUB上看到的一个UPDATE RETURN引发的ORA-600错误。 告警日志中错误如下: Mon Jan 16 09:50:13 2012 Errors IN file /DATA/dir1/app/oracle/admin/moyzkf1/udump/moyzkf1_ora_27801.trc: ORA-00600: internal error code, arguments: [13030], [1], [], [], [], [], [], []Mon Jan 16 09:50:13 2012 Errors in file /data/dir1/app/oracle/admin/moyzkf1/udump/moyzkf1_ora_27801.trc: ORA-00600: internal error code, arguments: [13030], [1], … Continue reading

Posted in BUG | Tagged , , , | Leave a comment

JDBC使用INSERT RETURN语句报错ORA-439

在给客户开发人员讲解LOB列的访问方式后,开发人员尝试在JDBC中使用包含RETURN的INSERT语句,但是出现了ORA-439错误。 检查后发现客户的程序使用的还是PreparedStatement语句,而RETURNING语句,则是Oracle扩展的SQL语法,因此在声明语句的时候必须使用OraclePreparedStatement方式进行声明。 除了修改SQL语句外,使用OraclePreparedStatement声明语句变量外,还需要注册输出参数,类似的代码如下: OraclePreparedStatement sqlstmt = (OraclePreparedStatement)conn.prepareStatement ("insert into t_lob values (?, ?, empty_clob()) returning contents into ?"); sqlstmt.setInt(1, 1); sqlstmt.setString(2, "a"); sqlstmt.registerReturnParameter(3, OracleTypes.CLOB); sqlstat.executeUpdate(); ResultSet resset = sqlstmt.getReturnResultSet(); IF (resset.next()) { CLOB contents = (CLOB)resset.getClob(2); … }OraclePreparedStatement sqlstmt = … Continue reading

Posted in ORACLE | Tagged , , , , , , | Leave a comment