Ejemplo de inserción basada en registro:
DECLARE
my_book books%ROWTYPE;
BEGIN
my_book.isbn :='1-123456-123-1';
my_book.title :='Fox Infotech Blogs';
mi_libro.resumen :='Ejemplos de Fox';
mi_libro.autor :='V. Kapoor';
my_book.page_count :=300;
INSERT INTO books VALUES my_book;
END;
/
Observe que no incluye paréntesis alrededor del especificador de registro . Si usa este formato:
INSERTAR EN libros VALORES (mi_libro); -- Entre paréntesis, ¡NO VÁLIDO!
entonces obtendrá un ORA-00947:excepción de valores insuficientes, ya que el programa espera una expresión separada para cada columna de la tabla.
Ejemplo de actualización basada en registros:
También puede realizar actualizaciones de una fila completa utilizando un registro. El siguiente ejemplo actualiza una fila en la tabla de libros con un registro %ROWTYPE. Observe que uso la palabra clave ROW para indicar que estoy actualizando toda la fila con un registro:
DECLARE
my_book books%ROWTYPE;
BEGIN
my_book.isbn :='1-123456-123-1';
my_book.title :='Fox Infotech Blogs';
mi_libro.resumen :='Ejemplos de Fox';
mi_libro.autor :='V. Kapoor';
mi_libro.page_count :=300;
ACTUALIZAR libros
SET ROW =my_book
WHERE isbn =my_book.isbn;
END;
/
Existen algunas restricciones en las actualizaciones basadas en registros:
No puede realizar una actualización usando una subconsulta.
Y, en caso de que se lo pregunte, no puede crear una columna de tabla llamada FILA.