Ir al contenido principal

Entradas

Mostrando entradas de abril 29, 2013

Resumen 2 ok

La clausula WHERE extiende la sentencia SELECT proveyendo al lenguaje la capacidad de selección. Una o más condiciones constituyen la clausula WHERE. Las condiciones definen reglas que deben cumplir los datos para ser seleccionados. Cada fila es probada con la condición. Hay términos en la izquierda y en la derecha de un operador de comparación. Los términos pueden ser columnas, literales o expresiones.   Los operadores de comparación pueden probar dos términos en muchas formas. Igual o Desigualdad, rangos o patrones. Comparación de rangos es desarrollada utilizando el operador BETWEEN. Comparación de conjuntos es desarrollada con el operador IN. Comparación o búsqueda de patrones de datos de tipo carácter es desarrollada con el operador LIKE. Utilizando los caracteres comodines % y _. Los operadores Booleanos son: AND, OR y NOT. Estos permiten unir múltiples condiciones. El operador Niega cualquier expresión. El resultado de una consulta puede ser ordenado mediante la cla

EL COMANDO VERIFY. ok

Dos categorías de comandos están disponibles cuando tratamos con el servidor Oracle. Los comandos del Lenguaje SQL y los comandos de Control del Cliente SQL. Los comandos de SQL ya los conocemos. Un ejemplo de comando de control del Cliente SQL es el comando SET. Los comandos de control pertinentes a sustitución son DEFINE y VERIFY. El comando VERIFY controla si la sustitución de variables es deplegada en panatalla para verificar la correcta sustitución de las variables, cuando sustituimos una variable se muestra la expresión vieja (old) y la nueva después de la sustitución o mejor dicho el ingreso del valor para la variable. SET VERIFY OFF | ON;

DEFINE Y VERIFY ok

Doble amspersand es utilizada para evitar repetir el ingreso del mismo valor para una misma variable que aparece muchas veces en la misma sentencia. Cuando definimos una variable con doble amspersand esta se almacena en la sesión. Si una sentencia que utilizó una variable con doble amspersand y fue ejecutada anteriormente en la misma sesión la ejecutamos nuevamente ya no pedirá el valor para la variable marcada con doble amspersand ya que el valor de esa variable es resuelto con la variable que se almacenó en sesión automáticamente. Esta for El comando VERIFY  es especifico para SQL PLUS y se utiliza para controlar si o no los elementos sustituidos anteriormente son mostrados en pantalla.  ma a veces no es deseable, para quitarla de la sesión utilizamos el comando UNDEFINE.

Los comandos DEFINE y UNDEFINE. ok

Variables de Nivel sesión son implícitamente creadas cuando son referenciadas con ampsersand doble en sentencias SQL. Persisten y permanecen disponibles durante toda la sesión de usuario hasta que la sesión es terminada. Una sesión termina cuando cerramos el cliente sql o cuando se cierra anormalmente. El problema con la persistencia de las variables sesión es que pueden provocar confusiones durante la ejecución de una sentencia sql. Afortunadamente estas variables sesión pueden ser eliminadas con el comando UNDEFINE, la sintaxis es: UNDEFINE variable; Ejemplo: -- ESQUEMA HR -- LOCATIONS COUNTRIES JOB_HISTORY REGIONS DEPARTMENTS EMPLOYEES JOBS SELECT location_id, street_address calle, state_province "DELEGACION/MUNICIPIO", city ciudad, country_id pais FROM   locations WHERE  location_id = &&id; DEFINE; UNDEFINE id; El comando DEFINE sirve para dos propósitos. Puede ser utilizado para recuperar todas las variables definidas en la ses

DEFINE Y VERIFY ok

Doble amspersand es utilizada para evitar repetir el ingreso del mismo valor para una misma variable que aparece muchas veces en la misma sentencia. Cuando definimos una variable con doble amspersand esta se almacena en la sesión. Si una sentencia que utilizó una variable con doble amspersand y fue ejecutada anteriormente en la misma sesión la ejecutamos nuevamente ya no pedirá el valor para la variable marcada con doble amspersand ya que el valor de esa variable es resuelto con la variable que se almacenó en sesión automáticamente. Esta forma a veces no es deseable, para quitarla de la sesión utilizamos el comando UNDEFINE. El comando VERIFY  es especifico para SQL PLUS y se utiliza para controlar si o no los elementos sustituidos anteriormente son mostrados en pantalla.  

Sustituyendo Expresiones o Texto ok

Al menos cualquier elemento  de una sentencia SQL puede ser sustituido en tiempo de ejecución. La restricción es que Oracle requiere que al menos  la primera palabra sea estática.  En el caso de la sentencia SELECT lo mínimo es la palabra SELECT sea estática y el resto de la sentencia puede ser sustituido. -- ESQUEMA HR -- REGIONS LOCATIONS DEPARTMENTS COUNTRIES JOB_HISTORY EMPLOYEES JOBS SELECT state_province, city, postal_code, &&pais &from locations ORDER BY &pais; &select state_province, city, postal_code, &&pais &from locations ORDER BY &pais; SELECT &resto_sentencia; select &clausula_Select from &clausula_from where &clausula_where order by &clausula_orderby; SELECT &resto_sentencia; SELECT location_id, street_address, postal_code, city, state_province, country_id FROM   locations ORDER BY &COL &asc_desc; SELECT location_id, street_address, postal_code, city, state_province, country_

Sustituyendo Nombre de Columnas ok

Elementos de la clausula WHERE son el foco de discusión, pero virtualmente cualquier elemento de una sentencia SQL es candidato para sustitución. A diferencia de literales carácter y fechas, las variables de sustitución que remplazan una columna no requieren ser encerradas entre comillas simples. En conclusión cuando utilizamos las variables de sustitución para remplazar columnas no debemos encerrarlas entre comillas, pero cuando tratamos con valores a sustituir si es necesario cuando se trata de valores carácter o fecha. Ejemplo: -- ESQUEMA HR -- REGIONS LOCATIONS DEPARTMENTS COUNTRIES JOB_HISTORY EMPLOYEES JOBS SELECT state_province, city, postal_code, &&pais FROM locations ORDER BY &pais;

Sustitución Amspersand Doble ok

Hay ocasiones cuando una sustitución de variable es referenciada múltiples veces en la misma sentencia. En tales situaciones, el servidor Oracle solicitará ingresar un valor para cada ocurrencia de la variable de sustitución con amspersand simple, esto puede ser ineficiente en un query muy complejo. Ejemplo: -- ESQUEMA HR -- REGIONS LOCATIONS DEPARTMENTS COUNTRIES JOB_HISTORY EMPLOYEES JOBS SELECT &col1, first_name, last_name, phone_number FROM   employees WHERE  first_name LIKE '%&filtro%' ORDER BY &col1; La aparición de la variable ocurre varias veces pero aplica en diferentes clausulas. La captura del mismo valor para una variable es ineficiente. Y otro error que puede surgir son los errores de tipografía. Puede ser que en la segunda escribamos otro valor.  Oracle no ofrece la verificación del valor ingresado aun que tenga el mismo nombre de variable. Algo que podemos mirar cuando repetimos una columna en la clausula SELECT es que Oracle l