我在尝试在oracle表中插入一行时遇到异常.我正在使用ojdbc5.jar for oracle 11这是我正在尝试的sql
INSERT INTO rule_definitions(RULE_DEFINITION_SYS,rule_definition_type,
rule_name,rule_text,rule_comment,rule_message,rule_condition,rule_active,
rule_type,current_value,last_modified_by,last_modified_dttm,
rule_category_sys,recheck_unit,recheck_period,trackable)
VALUES(RULE_DEFINITIONS_SEQ.NEXTVAL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
Run Code Online (Sandbox Code Playgroud)
我得到以下例外.任何帮助将不胜感激.
java.ljava.lang.ArrayIndexOutOfBoundsException: 15
at oracle.jdbc.driver.OracleSql.computeBasicInfo(OracleSql.java:950)
at oracle.jdbc.driver.OracleSql.getSqlKind(OracleSql.java:623)
at oracle.jdbc.driver.OraclePreparedStatement.(OraclePreparedStatement.java:1212)
at oracle.jdbc.driver.T4CPreparedStatement.(T4CPreparedStatement.java:28)
at oracle.jdbc.driver.T4CDriverExtension.allocatePreparedStatement(T4CDriverExtension.java:68)
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:3059)
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:2961)
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:5874)
at org.jboss.resource.adapter.jdbc.WrappedConnection.prepareStatement(WrappedConnection.java:232)
at com.gehcit.platform.cds.common.util.db.DBWrapper.executeInsertOracleReturnPK(DBWrapper.java:605)
我正在尝试使用此问题中提到的方法(我使用的是Oracle 10g)检索JSP中最后生成的自动增量ID,例如PHP mysql_insert_id()函数或MySQL last_insert_id()函数.getGeneratedKeys()
我TRANSPORTER在Oracle数据库中有一个表,它有一个名为TRANSPORTER_IDtype 的列,NUMBER(35, 0)它映射到BigDecimalJava中的类型,它是一个序列生成的主键.
Connection con;
ResultSet rs;
PreparedStatement ps;
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "root";
String pwd = "root";
Class.forName("oracle.jdbc.OracleDriver").newInstance();
con = DriverManager.getConnection(url, user, pwd);
ps = con.prepareStatement("INSERT INTO transporter(transporter_name, transporter_website)VALUES(?, ?)");
ps.setString(1, "New");
ps.setString(2, "New Website");
ps.executeUpdate();
BigDecimal id = new BigDecimal(0);
rs = ps.getGeneratedKeys();
while (rs.next()) {
id = rs.getBigDecimal("transporter_id");
}
out.println("The generated id is : " + id); …Run Code Online (Sandbox Code Playgroud)