Tecnología

Inicio

Cómo construir una consulta dinámica en Oracle

Oracle, el programa de gestión de base de datos relacional-objeto proporcionado por Oracle Corporation, permite el uso de sentencias SQL para almacenar, gestionar, recuperar y mostrar los datos. Las consultas permiten al usuario comunicarse con la base de datos para ejecutar comandos SQL. Una consulta SQL dinámico ofrece una gama más amplia de capacidades que una consulta estándar. Puede utilizar las consultas dinámicas para ejecutar comandos SQL en tiempo de ejecución, como por ejemplo cuando se opera con una tabla que no se sabe el nombre del hasta entonces.

Instrucciones

1 Abrir Oracle y haga clic en el icono para abrir la herramienta de taller de SQL.

2 Escribir en las sentencias SQL para crear objetos y tipos de tablas. Usted puede utilizar éstos como una especie de modelo para otras tablas de la base de datos. El poder detrás de sentencias de SQL dinámico es que se puede crear la tabla y consulta durante el tiempo de ejecución.

"CREATE t_students TIPO COMO OBJETO (NÚMERO studentID, FULL_NAME VARCHAR2 (30))

/

CREATE TYPE t_studentlist ya que el cuadro de t_student

/ "

En las declaraciones anteriores, que ha creado una base de datos denominada "t_students" que van a usar "studentID" y valores "FULL_NAME" como identificadores únicos (una manera de identificar un único registro en una base de datos). El valor "studentID" será un "número" variables, lo que significa que sólo los números van a guardar en el campo "studentID". El valor "FULL_NAME" sólo puede contener hasta 30 caracteres de letras. Por último, un tipo de tabla ( "t_studentlist") fue creado en el interior de la base de datos "t_student". Cambiar estos valores para representar mejor el tipo de datos que tiene en su base de datos Oracle.

3 Escribir las sentencias SQL para crear las tablas en la base de datos reales. La mesa de toma prestada la estructura de los tipos creados en el paso 2, por lo que no tiene que especificar los identificadores de nuevo. Usando el mismo ejemplo, el código SQL para crear las tablas se verá así:

"CREATE (NÚMERO studentID, estudiantes t__studentlist) TABLA students_new

NESTED TABLE students STORE AS student_table;"

La tabla de "students_new" se conectará a la mesa de "estudiantes" y "t_studentlist" usando el campo "studentID". Cada estudiante en la tabla tendrá un número único que conecta la información del estudiante en cada tabla. De esta manera, usted no tendrá datos repetitivos en las tablas. Por ejemplo, en una base de datos de los estudiantes, que tiene una tabla que contiene la información de contacto de los estudiantes (nombre, número de teléfono y dirección de correo) y otra tabla que mantiene el horario actual del estudiante. El único campo que será el mismo en ambas tablas es el campo "studentID" que conecta la información. Usted puede utilizar el campo "studentID" para escribir una consulta que extrae el nombre y teléfono del estudiante de la información de contacto de los estudiantes y la información de la programación del estudiante de la tabla de programación.

4 Escribir una consulta SQL para añadir información a las tablas. Declarar dos variables que se tire esta información de la mesa para ser utilizado en la consulta dinámica más adelante.

"Insertar en los valores students_new (

10,

t_studentlist (

t_students (1, 'John Doe'),

t_students (2, 'Jane Smith')));

DECLARAR

majorId NUMBER;

Sname VARCHAR1 (20); "

Dos estudiantes fueron añadidos a la mesa. John Doe tiene un carné de estudiante de "1" y Jane Smith tiene una identificación de estudiante de "2" A lo largo de la base de datos de información de John Doe tendrá un ID de "1"

5 Ejecutar la consulta. Esta parte se sumará el SQL dinámico. Uno de los nombres de las tablas no se conoce en el momento de codificar la consulta, sino que estarán disponibles durante el tiempo de ejecución. Crear un marcador de posición temporal en lugar.

"EMPEZAR

EXECUTE IMMEDIATE 'SELECT s.studentId, s.fullname

DESDE s students_new, mesa (s) s.students

DONDE s.studentId = 1 '

EN majorId, Sname;

FIN;

/ "

En la consulta dinámica, que está tomando la información de la tabla "students_new" y ponerla en los campos "sname" de una tabla que no se sabe en este momento ((s.students) s) "majorId" y. Consultada la base de datos para obtener información sobre un estudiante con un ID de "1" Siguiendo con el ejemplo, John Doe es el estudiante seleccionado de la tabla de los estudiantes y se añade a la tabla desconocido.

6 Pulse la tecla "F9" en su teclado para ejecutar la consulta y probarlo.

Consejos y advertencias

  • sentencias SQL separadas en varias líneas diferentes para hacer el código fácil de leer y su posterior consulta.
  • sentencias SQL entre mayúsculas y minúsculas.