相关疑难解决方法(0)

获取oracle db中最后插入记录的ID

我想检索具有自动递增id列的新插入记录的id(使用序列和触发器方法).这样做的标准方法是什么?

oracle

25
推荐指数
1
解决办法
2万
查看次数

JDBC - Oracle ArrayIndexOutOfBoundsException

我在尝试在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 jboss jdbc

14
推荐指数
1
解决办法
2万
查看次数

使用JDBC检索Oracle中最后插入的id

我正在尝试使用此问题中提到的方法(我使用的是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)

java oracle jdbc oracle10g

4
推荐指数
1
解决办法
5073
查看次数

标签 统计

oracle ×3

jdbc ×2

java ×1

jboss ×1

oracle10g ×1