oracle执行 insert语句后能返回插入的id值吗??谢谢

解决方案 »

  1.   

    declare
    v_id t.id%type;
    begin
    insert into t(id) values(seq.nextval) returning id into v_id;
    end;
    /
      

  2.   


    which variable to hold on return value if you don't want to use procedure?
      

  3.   

    java jdbc:
    try {
    con = OConnection.getConn();
    DatabaseMetaData dmd = con.getMetaData(); System.out.println("database product name: "
    + dmd.getDatabaseProductName());
    System.out.println("database product version: "
    + dmd.getDatabaseProductVersion());
    System.out.println("supports generate keys? "
    + dmd.supportsGetGeneratedKeys()); String sql = "INSERT INTO test11(ID,sdate) " + "VALUES (t_seq.nextval, ?)"; ps = con.prepareStatement(sql, new String[] { "ID" });  ps.setTimestamp(1, new Timestamp(System.currentTimeMillis()));
    ps.executeUpdate();
    Statement st = null;
    st = con.createStatement();
    st.executeQuery(sql);
    if (dmd.supportsGetGeneratedKeys()) {
    rs = ps.getGeneratedKeys();
    while (rs.next()) {

    System.out.println("ID: " + rs.getInt(1));
    }
    } } catch (SQLException e) {
      

  4.   

    SQL> variable i number;
    SQL> print i;         I
    ----------SQL> insert into t1(id) values(5) returning id into :i;1 row created.SQL> print i;         I
    ----------
             5