Что такое 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 (), чтобы получить идентификатор новой строки.
Как я могу вставить новую строку в Oracle, и чтобы JDBC получил копию нового идентификатора?
EDIT:
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");