¿Cómo obtengo el número de secuencia de la fila recién insertada?Oracle: ¿Cómo obtengo el número de secuencia de la fila recién insertada?
Respuesta
inserte ... volviendo.
declare
s2 number;
begin
insert into seqtest2(x) values ('aaa') returning seq into s2;
dbms_output.put_line(s2);
end;
"seq" aquí se refiere al nombre de la columna cuyo valor desea almacenar en la variable s2.
en Python:
myseq=curs.var(cx_Oracle.NUMBER)
curs.prepare("insert into seqtest2(x) values('bbb') returning seq into :x")
curs.execute(None, x=myseq)
print int(myseq.getvalue())
Editar: como Mark Harrison señaló, esto supone que usted tiene control sobre cómo se crea la ID de su registro insertado. Si usted tiene el control total y la responsabilidad por ello, este debe trabajo ...
utilizar un procedimiento almacenado para realizar su inserción y devolver la ID.
por ejemplo: para una tabla de nombres con los identificadores:
PROCEDURE insert_name(new_name IN names.name%TYPE,
new_name_id OUT names.id%TYPE)
IS
new_id names.id%TYPE;
BEGIN
SELECT names_sequence.nextVal INTO new_id FROM dual;
INSERT INTO names(id, name) VALUES(new_id, new_name);
new_name_id := new_id;
END;
El uso de procedimientos almacenados para las operaciones CRUD es una buena idea sin tener en cuenta si usted no está utilizando una capa ORM, ya que hace que el código sea más base de datos- agnóstico, ayuda contra los ataques de inyección, etc.
Mi respuesta en C#, considerando que la tabla "testtable" tiene una columna "ID" como PK con una secuencia autoinc y el campo "testname" es un campo varchar.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Oracle.DataAccess.Client;
using System.Data;
namespace ConsoleApplication3
{
class Program
{
public static void Main(string[] args)
{
OracleConnection cn = new OracleConnection("your connection string here");
string sql = "INSERT INTO testtable(testname) VALUES('testing2') RETURNING id INTO :LASTID";
OracleParameter lastId = new OracleParameter(":LASTID", OracleDbType.Int32);
lastId.Direction = ParameterDirection.Output;
using (OracleCommand cmd = new OracleCommand(sql, cn))
{
cn.Open();
cmd.Parameters.Add(lastId);
cmd.ExecuteNonQuery();
Console.WriteLine("Last ID: " + lastId.Value.ToString());
cn.Close();
}
Console.WriteLine();
Console.ReadKey(false);
}
}
}
- 1. Oracle - Devuelve el valor de clave recién insertado
- 2. Identidad de la fila insertada/actualizada en el desencadenador
- 3. WebSQL, Phonegap. Devuelva el ID de la última fila insertada
- 4. Autonumérico valor de la última fila insertada - MS Access/VBA
- 5. ¿Cómo obtener un valor de la última fila insertada?
- 6. Disparador que actualiza solo la fila insertada
- 7. Obtenga la identificación de la fila insertada usando C#
- 8. ¿Cómo puedo acceder a la última identificación de fila insertada dentro de una secuencia de comandos SQL?
- 9. Cuadrícula de datos Establecer foco en la fila recién agregada
- 10. ¿Cómo obtener el ID generado desde una fila insertada usando ExecuteScalar?
- 11. Fila aleatoria de Oracle de la tabla
- 12. Oracle: Mostrar el número de fila con la cláusula 'order by'
- 13. ¿La mejor manera de obtener la identidad de la fila insertada en el servidor vinculado?
- 14. La mejor manera de obtener el ID de la última fila insertada en SQLite
- 15. MySQL - Seleccione la última fila insertada manera más fácil
- 16. Número de secuencia TCP
- 17. Usando PHP, MySQLi y la declaración preparada, ¿cómo devuelvo la identificación de la fila insertada?
- 18. Serializar la fila de Oracle a XML
- 19. Hibernate return auto-generate id de una fila recientemente insertada
- 20. jQuery DatePicker no funciona en la fila recién agregada
- 21. Consulta de Oracle para obtener datos de la tabla insertada en los últimos 10 minutos
- 22. NÚMERO DE FILA() OVER
- 23. Oracle - ¿Cómo obtengo el tamaño real de un ROW específico?
- 24. Recuperar identificación de registro recién insertada en una base de datos Java DB (Derby)
- 25. Javascript/jQuery - Obtener el número de secuencia
- 26. Oracle Floats contra el número
- 27. ¿Cómo obtengo el número de campos en el objeto JavaScript?
- 28. ¿Cómo encontrar el número de fila de un registro?
- 29. ¿Cómo encontrar una identidad de la última fila insertada en Entity Framework?
- 30. Hibernar con la secuencia de Oracle no lo usa