Der er to måder at fjerne poster i Oracle. Den ene er at bruge " dræbe alle " situation, hvor truncate kommandoen helt tømmer database tabellen , og den anden er den SLET kommando, som kan foretage potentielle poster og vende handlingen i sådanne tilfælde som utilsigtet sletning . Den sikreste måde at demonstrere denne proces er at skabe en test bord og prøve de potentielle kommandoer ud snarere end forsøg på en eksisterende database. Instruktioner
SLET
1
Opret en test bord og befolke den med data til at teste resultatet. De indsatte data demonstrerer brugen af delete og truncate erklæring , som følger : Hej
CREATE TABLE test ( TestData VARCHAR2 (2) ),
INSERT INTO test ( TestData ) VALUES ( ' AX ');
INSERT INTO test ( TestData ) VALUES ( ' AY ");
INSERT INTO test ( TestData ) VALUES ( ' AZ ');
INSERT INTO test ( TestData ) VALUES ( ' BX ');
INSERT INTO test ( TestData ) VALUES ( ' BY ');
INSERT INTO test ( TestData ) VALUES ( ' BZ '); < br >
INSERT INTO test ( TestData ) VALUES ( ' CX ');
INSERT INTO test ( TestData ) VALUES ( ' CY «)
INSERT INTO test ( TestData ) VALUES ( » CZ «)
INSERT INTO test ( TestData ) VALUES ( ' DX ');
INSERT INTO test ( TestData ) VALUES ( ' DY ');
INSERT INTO test ( TestData ) VALUES ( ' DZ ');
COMMIT ,
SELECT * FROM test
2
Slet et antal rækker ved hjælp af kommandoen Slet , men ikke begår resultatet. Dette vil vise, hvordan delete beskytter data mod utilsigtet sletning under normale omstændigheder. Kommandoen delete løber fra kommandolinjen som følger : Hej
SQL > DELETE FROM test WHERE TestData LIKE ' A % «
Dette vil slette alle rækker præfikset " A " og lade hvile resterende
Tilbagerulning resultatet og vise resultaterne i tabellen som så: .
SQL > rollback
Dette vil vende den tidligere delete erklæring og tabellen skal nu sættes tilbage til sin oprindelige tilstand. Dette kan verificeres ved : Hej
SQL > SELECT * FROM test
3
Kør SLET kommandoen igen , derefter " COMMIT " og " ROLLBACK ", før teste output som illustreret : Hej
SQL > DELETE FROM test WHERE TestData LIKE ' A % «
SQL > COMMIT ,
SQL > rollback
SQL > SELECT * FROM test
Dette viser, at Oracle " SLET " erklæring har været effektive og ignoreret rollback erklæring , på grund af en " COMMIT " handling finder sted umiddelbart bagefter. Dette indikerer, at alle rækker begynder med "A " i " TestData " feltet forsvinder fra databasen og kan ikke erstattes med en " ROLLBACK " erklæring .
Trunkat
4 < p> Udføre en truncate erklæring om test bordet som følger : Hej
SQL > truncate tABLE test
5
Tilbagerulning den tidligere erklæring som følger : Hej
SQL > rollback
6
Vælg elementer fra testen tabellen som følger:
SQL > SELECT * FROM test
Dette viser ingen elementer på bordet. Den " ROLLBACK " erklæring virker ikke på den truncate kommando og alle rækkerne i databasen forsvinde.
Anden væsentlig forskel fra " SLET " er, at " truncate " virker hurtigere , men er ikke i stand til at filtrere data ved hjælp af a " WHERE "-klausul (i modsætning DELETE) .