Hay dos formas de eliminar registros en Oracle . Una de ellas es utilizar el " matar a todos ", situación en la que el comando TRUNCATE vacía por completo la tabla de base de datos, y el otro es el comando DELETE, que puede filtrar los registros prospectivos y revertir la acción en casos tales como la eliminación accidental . La manera más segura de demostrar este proceso es la creación de una tabla de prueba y probar los comandos posibles cabo en lugar de experimentar con una base de datos existente. Instrucciones
DELETE
1
Crear una tabla de prueba y rellenarla con los datos para probar el resultado. Los datos introducidos se muestra el uso de la supresión y la declaración truncada , de la siguiente manera :
CREATE TABLE test ( testdata VARCHAR2 ( 2 ));
INSERT INTO ( testdata ) VALUES ( ' AX prueba ');
INSERT INTO ( testdata ) VALUES ( test' AY ' ) ;
INSERT INTO prueba ( testdata ) VALUES ( ' AZ ');
INSERT INTO prueba ( testdata ) VALUES ( ' BX ' ) ;
INSERT INTO prueba ( testdata ) VALUES ( ' BY' ) ;
INSERT INTO prueba ( testdata ) VALUES ( ' BZ '); < br >
INSERT INTO ( testdata ) VALUES ( ' CX ' ) prueba ;
INSERT INTO prueba ( testdata ) VALUES ( ' CY ');
INSERT INTO prueba VALUES ( testdata ) ( ' CZ ');
INSERT INTO prueba VALUES ( testdata ) ( ' DX ');
INSERT INTO prueba ( testdata ) VALUES ( ' DY ');
INSERT EN ( testdata ) VALUES ( ' DZ ' ) prueba ;
COMMIT ;
SELECT * FROM prueba ;
2
Eliminar un número de filas con el comando delete , pero no comprometen el resultado. Esto le mostrará cómo eliminar protege los datos contra el borrado accidental en condiciones normales . El comando delete se ejecuta desde la línea de comandos de la siguiente manera :
SQL > ELIMINAR DE DONDE prueba testdata LIKE ' A% ' ;
Esto eliminará todas las filas con el prefijo "A" y dejar el descansar restante
Rollback el resultado y mostrar los resultados de la tabla así: .
SQL > ROLLBACK ;
Esto invertirá la instrucción delete anterior y la tabla debe ahora ajustarse de nuevo a su estado original. Esto es verificable por:
SQL > SELECT * FROM prueba ;
3
Ejecute el comando DELETE otra vez, luego "Confirmar " y " ROLLBACK " antes de probar la salida como se ilustra :
SQL > DELETE FROM prueba donde testdata LIKE ' A% ' ;
SQL > COMMIT ;
SQL > ROLLBACK ;
SQL > SELECT * FROM prueba ;
Esto demuestra que la declaración de Oracle " BORRAR" ha sido eficaz y ha ignorado la instrucción de reversión , debido a una acción " COMMIT " que tiene lugar inmediatamente después. Esto indica que todas las líneas que comienzan con "A " en el campo " testdata " desaparecen de la base de datos y no son recuperables con una declaración " ROLLBACK " .
TRUNCATE
4 < p> Ejecutar una sentencia truncado en la tabla de prueba de la siguiente manera :
SQL > prueba
TRUNCATE TABLE;
5
Rollback la declaración anterior de la siguiente manera :
SQL > ROLLBACK ;
6
Seleccione los elementos de la tabla de prueba de la siguiente manera :
SQL > SELECT * FROM prueba ;
no muestra elementos de la tabla. La declaración " ROLLBACK " no funciona en el comando TRUNCATE y todas las filas de la base de datos de desaparecer .
Otra diferencia importante de " BORRAR" es que " TRUNCATE " funciona más rápido, pero no es capaz de filtrar los datos mediante una cláusula "where" (a diferencia de DELETE) .