vb.net - obtener - Devuelve un valor de una declaración de inserción
gridview devexpress c# (4)
Algunas posibilidades:
1) Use la cláusula de RETORNO:
INSERT INTO emp (empno, ename) VALUES (emp_seq.NEXTVAL, ''ANDREWS'')
RETURNING empno INTO :variable;
2) Usa la secuencia CURRVAL:
INSERT INTO emp (empno, ename) VALUES (emp_seq.NEXTVAL, ''ANDREWS'');
SELECT emp_seq.CURRVAL INTO :variable FROM DUAL;
CURRVAL devuelve el último valor de secuencia generado por su sesión.
Trabajar con una base de datos Oracle 9i desde una aplicación ASP.NET 2.0 (VB) usando OLEDB. ¿Hay alguna manera de hacer que una declaración de inserción devuelva un valor? Tengo una secuencia configurada para numerar las entradas a medida que ingresan a la base de datos, pero necesito que ese valor regrese después de la inserción para poder manipular el conjunto que acabo de ingresar en el VB con código subyacente.
Oracle parece tener un keywod llamado "regresar" que puede devolver una columna dada de la fila insertada, sin embargo, eso podría requerir que configure manualmente el campo "autoincrement" invocando el siguiente valor en su secuencia.
Verifique esta discusión al respecto:
http://forums.oracle.com/forums/thread.jspa?threadID=354998
Sin embargo, siempre puede seleccionar el número de secuencia actual en una segunda consulta, algo así como MySQL last_insert_id()
Primero use una instrucción SELECT para obtener la siguiente secuencia. Puede usar la tabla dual de Oracle para hacer esto.
SELECT my_seq.nextval FROM dual
Use la secuencia que recuperó en las siguientes instrucciones INSERT .
INSERT ...
INSERT ...
Si este valor es la clave que crea la base de datos, habrá encontrado un buen ejemplo de por qué debe usar UUID como clave de tabla y generarlos en código.
Este método le dará un rendimiento más rápido en su configuración.