Ir al contenido principal

Entradas

Mostrando entradas de abril 25, 2013

Sustitución Amspersand Simple ok

Es la forma más popular y simple de sustitución de elementos en una sentencia SQL. El carácter amspersand (&) es el elegido para designar una variable de sustitución en una sentencia y procede el nombre de la variable sin espacios entre ellos. Cuando se ejecuta la sentencia, el Servidor Oracle procesa la sentencia, verifica si hay variables de sustitución, e intenta resolver las variables en dos formas. La primera verifica  si la variable está definida en la sesión del usuario. Si la variable no está definida, el proceso usuario solicita el valor para esta. Una vez que un valor es enviado la sentencia completa su ejecución. La sustitución amspersand es ejecutada en tiempo de ejecución y es conocida como runtime binding o runtime substitution. -- ESQUEMA HR -- REGIONS LOCATIONS DEPARTMENTS COUNTRIES JOB_HISTORY EMPLOYEES JOBS SELECT region_id, region_name FROM regions WHERE region_id = &region_id; SELECT &col1, &col2 FROM regions WHERE region_id = &region

Variables de Sustitución ok

Para entender las variables de sustitución  es considerarlas como marcadores de posición. Una consulta SELECT está compuesta de dos o más clausulas. Cada clausula puede ser dividida en sub clausulas. Cualquier texto, sub clausula o clausula, o incluso la consulta completa puede ser candidata a sustitución. SELECT *|{[DISTINCT] column|expression [ alias ],…} FROM table [WHERE condition(s) ] [ORDER BY { col(s)|expr|numeric_pos } [ASC|DESC] [NULLS FIRST|LAST]] Utilizando la sustitución, podemos insertar valores en los elementos con letra itálica, hay que elegir las palabras opcionales que se usaran en la consulta. La consulta se construye usando la forma general de la sentencia SELECT y se sustituyen los elementos  que deseemos.

Sustitución Amspersand ok

Algunas veces creamos querys para ser reutilizados posteriormente o para alguna tarea repetitiva.  Estos querys cada vez que los reutilizamos solo le cambiamos algún parámetro. Oracle ofrece una funcionalidad para parametrizar estos querys y es llamada sustitución amspersand. Cada elemento de la sentencia SELECT puede ser sustituido esto nos ayuda a reutilizar las consultas.

Ordenamiento Compuesto ok

El resultado de una consulta puede ser ordenado por más de una columna o expresión a esto se le llama ordenamiento compuesto. Pueden ser especificadas más de una columnas para el ordenamiento, puede ser literal o posicional. Las columnas listadas en la clausula ORDER BY  se deberán separar por comas. Cada columna involucrada en el ordenamiento es listada de izquierda a derecha en orden, separados por comas en la cláusula ORDER BY, incluyendo los modificadores DESC|ASC NULLS FIRST NULLS LAST especificado para cada columna. A cada columna podemos especificar modificadores. Ejemplos: -- ESQUEMA HR -- REGIONS LOCATIONS DEPARTMENTS COUNTRIES JOB_HISTORY EMPLOYEES JOBS SELECT job_id, salary FROM employees ORDER BY job_id ASC, salary ASC; SELECT job_id, salary FROM employees ORDER BY job_id ASC, salary DESC; SELECT job_id, salary FROM employees ORDER BY job_id DESC, salary ASC; SELECT job_id, salary FROM employees ORDER BY job_id DESC, salary DESC; SELECT job_id, sal

Ordenamiento Posicional ok

Oracle ofrece una forma alternativa y corta para especificar la columna o expresión que ordenará el resultado. En lugar de especificar el nombre de la columna o expresión, se coloca la posición que ocupa la columna o expresión en la clausula SELECT. Ordenamiento posicional aplica solo a columnas listadas en la clausula SELECT, la posición numérica que ocupan es la que se especifica en la clausula ORDER BY. La primera posición en la clausula SELECT es la posición 1. Si se indica un número de posición no existente, la consulta causa error. Las limitantes de esta forma es que solo podemos ordenar por las columnas que aparecen en la clausula SELECT. Ejemplo: -- ESQUEMA HR -- REGIONS LOCATIONS DEPARTMENTS COUNTRIES JOB_HISTORY EMPLOYEES JOBS SELECT job_id, job_title, min_salary, max_salary, min_salary * max_salary total FROM jobs ORDER BY 0; SELECT job_id, job_title, min_salary, max_salary, min_salary * max_salary total FROM jobs ORDER BY 1; SELECT job_id, job_title, m