sql >> Database >  >> RDS >> Oracle

Op records gebaseerd invoegen en bijwerken in Oracle

U kunt ook records gebruiken die zijn gebaseerd op %ROWTYPE-declaraties tegen de tabel waarin de invoeging en update zijn gemaakt, of op een expliciet record TYPE dat compatibel is met de structuur van de tabel.

Op records gebaseerd invoegvoorbeeld:

VERKLAREN
my_book books%ROWTYPE;
BEGIN
my_book.isbn :='1-123456-123-1';
my_book.title :='Fox Infotech Blogs';
my_book.summary :='Fox Voorbeelden';
my_book.author :='V. Kapoor';
my_book.page_count :=300;
INSERT INTO books VALUES my_book;
END;
/
Merk op dat u geen haakjes plaatst rond de recordspecificatie . Als u dit formaat gebruikt:

INVOEREN IN boeken WAARDEN (my_book); -- Met haakjes, ONGELDIG!

dan krijg je een ORA-00947:niet genoeg waarden uitzondering, omdat het programma een aparte uitdrukking verwacht voor elke kolom in de tabel.

Voorbeeld van update op basis van records:

U kunt ook updates van een hele rij uitvoeren met behulp van een record. In het volgende voorbeeld wordt een rij in de boekentabel bijgewerkt met een %ROWTYPE-record. Merk op dat ik het trefwoord ROW gebruik om aan te geven dat ik de hele rij bijwerk met een record:

VERKLAREN
my_book books%ROWTYPE;
BEGIN
my_book.isbn :='1-123456-123-1';
my_book.title :='Fox Infotech Blogs';
my_book.summary :='Fox Voorbeelden';
my_book.author :='V. Kapoor';
my_book.page_count :=300;

UPDATE boeken
SET ROW =my_book
WHERE isbn =my_book.isbn;
END;
/
Er gelden enkele beperkingen voor op records gebaseerde updates:

U moet een hele rij bijwerken met de ROW-syntaxis. U kunt een subset van kolommen niet bijwerken (hoewel dit in toekomstige releases mogelijk wordt ondersteund). Alle velden waarvan de waarden NULL zijn, resulteren in een NULL-waarde die wordt toegewezen aan de corresponderende kolom.
U kunt geen update uitvoeren met een subquery.
En, mocht je het je afvragen, je kunt geen tabelkolom maken met de naam ROW.

  1. OPENXML met xmlns:dt

  2. SCHEMA() Functie in MySQL

  3. Buitenlandse sleutel toevoegen aan bestaande tabel

  4. Sorteer NULL-waarden aan het einde van een tabel