Qual è l'equivalente PLSQL (Oracle) di questo snippet del server SQL?JDBC PLSQL: come ottenere l'ultimo ID riga?
BEGIN TRAN
INSERT INTO mytable(content) VALUES ("test") -- assume there's an ID column that is autoincrement
SELECT @@IDENTITY
COMMIT TRAN
In C#, è possibile chiamare myCommand.ExecuteScalar() per recuperare l'ID della nuova riga.
Come posso inserire una nuova riga in Oracle e JDBC ottenere una copia del nuovo ID?
MODIFICA: BalusC ha fornito un ottimo punto di partenza. Per qualche motivo a JDBC non piace il binding dei parametri con nome. Questo dà "SQLException" ai parametri impostati o registrati erroneamente. Perché sta succedendo?
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");
Selezionare il massimo del campo id + 1? – Aren
@Aren - 'max (n) + 1' non scala e non funziona in un ambiente multiutente. – APC