PLSQL JDBC:如何获取最后一行 ID?
PLSQL(Oracle)相当于这个SQL服务器代码段吗?
BEGIN TRAN
INSERT INTO mytable(content) VALUES ("test") -- assume there's an ID column that is autoincrement
SELECT @@IDENTITY
COMMIT TRAN
在 C# 中,可以调用 myCommand.ExecuteScalar() 来检索新行的 ID。
如何在 Oracle 中插入新行,并让 JDBC 获取新 ID 的副本?
编辑:BalusC提供了一个非常好的起点。由于某种原因,JDBC 不喜欢命名参数绑定。这给出了“错误设置或注册的参数”SQLException。为什么会发生这种情况?
OracleConnection conn = getAppConnection();
String q = "BEGIN INSERT INTO tb (id) values (claim_seq.nextval) returning id into :newId; end;" ;
CallableStatement cs = (OracleCallableStatement) conn.prepareCall(q);
cs.registerOutParameter("newId", OracleTypes.NUMBER);
cs.execute();
int newId = cs.getInt("newId");