Det er to måter å fjerne poster i Oracle . Det ene er å bruke " kill all" situasjon hvor TRUNCATE kommandoen helt tømmer databasen tabellen , og den andre er DELETE kommandoen, som kan filtrere potensielle poster og reversere handlingen i slike tilfeller som utilsiktet sletting . Den sikreste måten å demonstrere denne prosessen er å lage en test bordet og prøve de potensielle kommandoer ut heller enn å eksperimentere på en eksisterende database . Instruksjoner
DELETE
en
Lag en test bord og fylle den med data for å teste resultatet. Dataene satt demonstrerer bruken av slette og avkorte uttalelse, som følger : en
CREATE TABLE test ( testdata VARCHAR2 ( 2 ));
INSERT INTO test ( testdata ) VALUES ( ' AX ');
INSERT INTO test ( testdata ) VALUES ( ' AY ') ;
INSERT INTO test ( testdata ) VALUES (' A ');
INSERT INTO test ( testdata ) VALUES ( ' BX ') ;
INSERT INTO test ( testdata ) VALUES ( ' av');
INSERT INTO test ( testdata ) VALUES ( ' BZ ');
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
Slette et antall rader ved hjelp av delete -kommandoen , men ikke forplikte resultatet. Dette vil vise hvordan slette beskytter data mot utilsiktet sletting under normale omstendigheter. Kommandoen delete går fra kommandolinjen som følger : en
SQL > DELETE FROM test WHERE testdata LIKE ' A% ';
Dette vil slette alle radene innledes med "A" og la hvile gjenværende
tilbakerulling resultatet og vise resultatene av bordet slik: .
SQL > ROLLBACK ;
p Dette vil reversere forrige slett uttalelse og tabellen bør nå settes tilbake til sin opprinnelige tilstand . Dette er kontrollerbar av:
SQL > SELECT * FROM test ;
3
Kjør DELETE kommandoen igjen , deretter " COMMIT , " og " ROLLBACK " før testing av produksjonen som illustrert : en
SQL > DELETE FROM test WHERE testdata LIKE ' A% ';
SQL > COMMIT ;
SQL > ROLLBACK ;
SQL > SELECT * FROM test ;
Dette viser at Oracle " DELETE " statement har vært effektive og ignorert tilbakeføring uttalelse , på grunn av en " COMMIT " handling finner sted umiddelbart etterpå . Dette indikerer at alle radene som begynner med "A" i " testdata "-feltet forsvinne fra databasen og kan ikke gjenopprettes med en " ROLLBACK " statement.
TRUNCATE
4 < p> Kjør en truncate uttalelse på test tabellen som følger : en
SQL > avkorte TABLE test ;
5
tilbakefører du tidligere uttalelse som følger : en
SQL > ROLLBACK ;
6
Velg elementer fra testen tabellen som følger:
SQL > SELECT * FROM test ;
p Dette viser ingen elementer på bordet. Den " ROLLBACK " statement fungerer ikke på TRUNCATE kommando og alle radene i databasen forsvinne.
En annen stor forskjell fra "SLETT " er at " avkorte " fungerer raskere, men er ikke i stand til å filtrere ut data ved hjelp en "hvor" klausul (i motsetning til DELETE) .