Ir al contenido principal

Entradas

Mostrando entradas de octubre 7, 2013

Fallas en las Sentencias DML.

Los comandos pueden fallar por muchas razones, incluyendo las siguientes: ·          Los errores de sintaxis ·          Las referencias a objetos o columnas inexistentes ·          Los permisos de acceso ·          violaciónes de restricción ·          problemas de espacio Como un comando SQL puede afectar a un conjunto de filas, existe la complicación de que un comando puede tener éxito parcialmente: el fallo podría ocurrir sólo alguna línea en el conjunto. Las anteriores tres primeras clases de error también se aplican a las sentencias SELECT. Cuando se producen, que deben ser detectados por la herramienta que está construyendo el SQL para ser enviado a la base de datos: SQL * Plus o SQL Developer si se introduce el SQL interactivamente, o cualquier otra herramienta está siendo utilizada para generar una interfaz más sofisticada. Hay un gran número de posibles errores de sintaxis, empezando por simples errores de ortografía o errores de transposición. Los errores de

TRUNCATE

El comando TRUNCATE no es un comando DML, es un comando DDL. La diferencia es enorme. Los comandos DML afectan datos como el INSERT, UPDATE y DELETE y son parte de una transacción. Por ahora, solo decir que una transacción puede ser controlada, en el sentido de decir que el usuario elige si el trabajo de una transacción permanece o si se revierte. Esto es muy útil, pero obliga a la base de datos para hacer el trabajo adicional detrás de las escenas que el usuario no es consciente de. Comandos DDL no son transacciones de usuario (aunque dentro de la base de datos, que son, de hecho, implementado como transacciones, pero los desarrolladores no pueden controlar), y no hay posibilidad de elegir si desea que sean permanentes o para revertirlas. Una vez ejecutado, se hacen. Sin embargo, en comparación con DML, son muy rápidos. Desde el punto de vista de un usuario un Truncation es equivalente  a la ejecución de un DELETE de las filas de una tabla, un DELETE sin clausula WHERE. Pero mientr

MERGE

MERGE fue introducido con el estándar SQL1999 e implementado por Oracle 9i. Versiones 10g proveen mejoras. MERGE ejecuta un UPDATE o un INSERT, dependiendo de alguna condición. La actual versión de MERGE puede realizar también DELETE. Hay muchas ocasiones donde usted desea tomar un conjunto de datos e integrarlos en una tabla existente. Si una fila en la tabla Source ya existe en la tabla Target, es posible que usted desee solo actualizar la fila Target, o puede desear remplazarla completamente. O es posible que usted desee dejar la fila Target sin cambios. Si una fila en la tabla Source no existe en la tabla Target, usted desea insertarla. El comando MERGE hace todo esto. El Merge pasa a través de los datos de la tabla Source e intentando localizarlos en la tabla Target. Si no lo encuentra, una fila puede ser insertada. Si es encontrada, la fila puede ser actualizada. Desde 10g Merge puede hacer DELETE también. El resultado final  es una tabla destino mesclados con los datos de la

DELETE

Filas insertadas previamente pueden ser eliminadas de una tabla mediante el comando DELETE. El comando elimina una fila o un conjunto de filas de una tabla. Dependiendo  de la clausula WHERE. Si no hay clausula WHERE todas las filas serán eliminadas de la tabla. Una eliminación es todo o nada. No es posible elegir una columna. Cuando usted inserta una fila, usted elige que columnas poblar. Cuando una fila es actualizada, usted elige que columna actualizar. Pero la eliminación aplica a toda la fila. Esto hace que el comando DELETE sea el más fácil de los comandos DML.