He oído a personas que se refieren a esta tabla y no estaba seguro de qué se trataba.¿Qué es la tabla dual en Oracle?
Respuesta
Es una especie de tabla ficticia con un registro único utilizado para seleccionar cuando no está realmente interesado en los datos, pero en cambio desea los resultados de alguna función del sistema en una instrucción select:
por ejemplo select sysdate from dual;
Otra buena fuente de información -> http://en.wikipedia.org/wiki/DUAL_table –
Creo que este artículo de la wikipedia puede ayudar a aclarar.
http://en.wikipedia.org/wiki/DUAL_table
La tabla DUAL es una tabla especial de una sola fila presente por defecto en todas las instalaciones de bases de datos Oracle . Es adecuado para su uso en la selección de un pseudocolumna como SYSDATE o USUARIO La tabla tiene un solo VARCHAR2 (1) columna llamada DUMMY que tiene un valor de "X"
tipo de una tabla de pseudo usted puede ejecutar comandos en contra y obtener resultados, como sysdate. También le ayuda a verificar si Oracle está activo y verificar la sintaxis sql, etc.
Es la mesa especial en Oracle. A menudo lo uso para cálculos o para verificar variables del sistema. Por ejemplo:
Select 2*4 from dual
imprime el resultado del cálculoSelect sysdate from dual
imprime la fecha actual del servidor.
Es una tabla ficticia con un elemento en ella. Es útil porque Oracle no permite declaraciones como
SELECT 3+4
Puede solucionar esta limitación escribiendo
SELECT 3+4 FROM DUAL
lugar.
Esta es la mejor respuesta. – johnny
Es un objeto para poner en el de esa devolución 1 fila vacía. Por ejemplo: seleccione 1 de dual; devuelve 1
seleccione 21 + 44 desde dual; devuelve 65
seleccione [sequence] .nextval from dual; devuelve el siguiente valor de la secuencia.
La tabla DUAL es una tabla especial de una fila presente por defecto en todas las instalaciones de bases de datos Oracle.Es adecuado para su uso en la selección de un pseudocolumna como SYSDATE o USUARIO
La mesa tiene una sola VARCHAR2 (1) columna llamada ficticia que tiene un valor de "X"
Puede leer todos los detalles en http://en.wikipedia.org/wiki/DUAL_table
de Wikipedia
Historia
La tabla DUAL fue creado por Chuck Weiss de la corporación Oracle para proporcionar una tabl e para unirse en las vistas internas:
que crea la tabla DUAL como un objeto subyacente en el diccionario de datos de Oracle. Nunca se pensó para que se viera solo, sino que usó dentro de una vista que se esperaba consultar. La idea era que pudiera hacer una UNIÓN a la tabla DUAL y crear dos filas en el resultado por cada fila en su tabla. Luego, al usar GROUP BY, la unión resultante se puede resumir para mostrar la cantidad de almacenamiento para la extensión DATA y para la (s) extensión (es) INDEX. El nombre, DUAL, parecía apto para el proceso de crear un par de filas a partir de una sola. 1
puede no ser obvio a partir de lo anterior, pero la tabla DUAL original tenía dos filas en ella (de ahí su nombre). Hoy en día solo tiene una fila.
Optimización
DUAL era originalmente una mesa y el motor de base de datos realizaría S de disco en la mesa cuando se selecciona de DUAL. Este IO de disco usualmente era IO lógico (no involucraba el acceso físico al disco) ya que los bloques de disco generalmente ya estaban almacenados en la memoria caché. Esto dio como resultado una gran cantidad de IO lógico contra la tabla DUAL.
Las versiones posteriores de la base de datos Oracle se han optimizado y la base de datos ya no realiza IO físico o lógico en la tabla DUAL aunque la tabla DUAL todavía existe.
DUAL es necesario en PL/SQL de desarrollo para utilizar las funciones que sólo están disponibles en SQL
por ejemplo
DECLARE
x XMLTYPE;
BEGIN
SELECT xmlelement("hhh", 'stuff')
INTO x
FROM dual;
END;
más datos sobre las DUAL ....
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1562813956388
experimentos emocionantes hecho aquí, y explicaciones más emocionantes de Tom
Una mesa de utilidad en Oracle con sólo 1 fila y 1 columna Se usa para realizar varias operaciones aritméticas y se puede usar generalmente donde se necesita generar un resultado conocido.
SELECCIONAR * DESDE dual;
dará una sola fila, con una sola columna llamada "falsa" y un valor de "X" como se muestra aquí:
DUMMY ----- X
DUAL que utiliza principalmente para conseguir el siguiente número de las secuencias
Sintaxis: SELECT 'sequence_name'.NEXTVAL FROM DUAL
Esto devolverá la una fila un valor de columna (nombre de la columna NEXTVAL).
Eso no es necesario desde 11g. Las secuencias se pueden usar de forma nativa en PL/SQL. –
otra situación que requiere select ... from dual
es cuando queremos recuperar el código (definición de datos) para diferentes objetos de bases de datos (como la mesa, FUNCIÓN, disparador, del paquete), utilizando el construido en DBMS_METADATA.GET_DDL
función:
select DBMS_METADATA.GET_DDL('TABLE','<table_name>') from DUAL;
select DBMS_METADATA.GET_DDL('FUNCTION','<function_name>') from DUAL;
Es cierto que hoy en día los IDE ofrecen la capacidad de ver el DDL de una tabla, pero en entornos más simples como SQL Plus esto puede ser realmente útil.
EDITAR
una situación más general: básicamente, cuando tenemos que utilizar cualquier procedimiento PL/SQL dentro de una sentencia SQL estándar, o cuando queremos llamar a un procedimiento desde la línea de comandos:
select my_function(<input_params>) from dual;
ambas recetas se han extraído del libro 'Oracle PL/SQL recetas' Josh Juneau y Matt Arena
- 1. ¿Cómo escribir una tabla literal en Oracle?
- 2. En Oracle, ¿por qué es '' = '' falso?
- 3. ¿Qué tabla de Oracle utiliza una secuencia?
- 4. Crear índice en la tabla existente Oracle
- 5. ¿Qué es la tabla android_metadata?
- 6. En Oracle, ¿es posible "insertar" una columna en una tabla?
- 7. ¿Qué es una vista en Oracle?
- 8. Duplicación maestra dual de MySQL: ¿es seguro este escenario?
- 9. Fila aleatoria de Oracle de la tabla
- 10. ¿Es posible utilizar la autenticación dual con symfony2?
- 11. ¿Qué tan grave es ignorar la excepción Oracle DUP_VAL_ON_INDEX?
- 12. Dual Sim Android
- 13. ¿Qué tabla es exactamente la tabla "izquierda" y la tabla "derecha" en una declaración JOIN (SQL)?
- 14. Modificar tabla tras palabra clave en Oracle
- 15. La tabla Oracle dba_data_files no existe
- 16. Maestro dual de MySQL
- 17. Descubrir cuál es el proceso/consulta está utilizando tabla de Oracle Oracle temp
- 18. ¿Por qué la función to_char() de Oracle agrega espacios?
- 19. Actualización de tabla múltiple en Oracle
- 20. Seleccione `n` últimos registros insertados en la tabla - oracle
- 21. Mover elementos en Dual Listboxes
- 22. Tabla truncada en Oracle recibiendo errores
- 23. Variables de tabla en Oracle PL/SQL?
- 24. ¿Qué es el integrador de datos Oracle?
- 25. dual sim android sdk
- 26. Buscar varchar específico en Oracle Tabla anidada
- 27. ¿Qué es un cliente de Oracle?
- 28. Tarjeta SIM Dual Android
- 29. ¿Qué tan "caro" es Oracle Enterprise Manager?
- 30. Android pantalla dual
http://asktom.oracle.com/pls/asktom/f?p=100:11:0 :::: P11_QUESTION_ID: 1562813956388 detalles sobre dual – SriniV