什麼是PLSQL(Oracle)等同於此SQL服務器片段?PLSQL JDBC:如何獲取最後一行ID?
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");
選擇id字段+ 1的最大? – Aren 2010-08-23 22:48:16
@Aren - 'max(n)+ 1'不能縮放,並且在多用戶環境下不起作用。 – APC 2010-08-24 12:37:46