La tabla DUAL es una tabla especial de una sola columna presente de manera predeterminada en todas las instalaciones de bases de datos de Oracle. Se utiliza para seleccionar una seudocolumna como SYSDATE o USER. La tabla tiene una sola columna VARCHAR2(1) llamada DUMMY que tiene un valor de 'X'.

Ejemplo de uso editar

La sintaxis SQL de Oracle requiere la cláusula FROM pero algunas consultas no requieren ninguna tabla; DUAL puede ser utilizada en estos casos.

SELECT 1+1
FROM DUAL;

SELECT 1 
FROM DUAL;

SELECT USER 
FROM DUAL;

SELECT SYSDATE
FROM DUAL;

Historia editar

La tabla DUAL fue creada por Charles Weiss de Oracle Corporation para proveer una tabla para unir en vistas internas:

Creé la tabla DUAL como un objeto subyacente en el diccionario de datos de Oracle.

Nunca fue la intención que fuera visible, sino ser utilizada adentro de una vista que se esperara fuera consultada. La idea fue que tú pudieras hacer un JOIN a la tabla DUAL y crear dos tuplas en el resultado por cada tupla en tu tabla. Así, al usar GROUP BY, la unión resultante podría ser resumida para mostrar el monto de almacenaje para la "extent" de datos e índices. El nombre, DUAL, parecía apropiado para el proceso de crear un par de tuplas a partir de una sola.[1]

La tabla DUAL original tenía dos tuplas en ella (de allí el nombre), pero subsecuentemente solo tiene una tupla.

Notas editar

  1. «Mas acerca de la historia de Oracle (Ingles)». Oracle Magazine. Enero/Febrero 2002. Archivado desde el original el 5 de diciembre de 2004. Consultado el 4 de septiembre de 2013.