Exemple d'insertion basée sur les enregistrements :
DECLARE
my_book books%ROWTYPE;
COMMENCER
my_book.isbn :='1-123456-123-1';
my_book.title :='Fox Infotech Blogs';
my_book.summary :='Fox Example';
my_book.author :='V. Kapoor';
my_book.page_count :=300;
INSERT INTO books VALUES my_book;
END;
/
Notez que vous n'incluez pas de parenthèses autour du spécificateur d'enregistrement . Si vous utilisez ce format :
INSERT INTO books VALUES (my_book); -- Avec parenthèses, INVALIDE !
alors vous obtiendrez une exception ORA-00947 :pas assez de valeurs, car le programme attend une expression distincte pour chaque colonne de la table.
Exemple de mise à jour basée sur les enregistrements :
Vous pouvez également effectuer des mises à jour d'une ligne entière à l'aide d'un enregistrement. L'exemple suivant met à jour une ligne dans la table des livres avec un enregistrement %ROWTYPE. Notez que j'utilise le mot-clé ROW pour indiquer que je mets à jour la ligne entière avec un enregistrement :
DECLARE
my_book books%ROWTYPE;
COMMENCER
my_book.isbn :='1-123456-123-1';
my_book.title :='Fox Infotech Blogs';
my_book.summary :='Fox Example';
my_book.author :='V. Kapoor';
my_book.page_count :=300;
UPDATE books
SET ROW =my_book
WHERE isbn =my_book.isbn;
END;
/
Il existe certaines restrictions sur les mises à jour basées sur les enregistrements :
Vous ne pouvez pas effectuer de mise à jour à l'aide d'une sous-requête.
Et, au cas où vous vous poseriez la question, vous ne pouvez pas créer une colonne de table appelée ROW.