transponer - ¿Cuál es la tabla de doble en Oracle?
oracle transponer registros columnas (13)
He oído a gente que se refieren a esta tabla y no estaba seguro de qué se trataba.
Creo que este artículo de wikipedia puede ayudar a aclarar.
en.wikipedia.org/wiki/DUAL_table
La tabla DUAL es una tabla especial de una fila presente de forma predeterminada en todas las instalaciones de base de datos Oracle. Es adecuado para usar en la selección de una pseudocolumna como SYSDATE o USER. La tabla tiene una sola columna VARCHAR2 (1) llamada DUMMY que tiene un valor de "X"
DUAL es necesario en el desarrollo de PL / SQL para usar funciones que solo están disponibles en SQL
p.ej
DECLARE
x XMLTYPE;
BEGIN
SELECT xmlelement("hhh", ''stuff'')
INTO x
FROM dual;
END;
DUAL que usamos principalmente para obtener el siguiente número de las secuencias.
Sintaxis: SELECCIONE ''secuencia_nombre''.NEXTVAL DESDE DUAL
Esto devolverá el valor de una fila una columna (nombre de columna NEXTVAL).
De en.wikipedia.org/wiki/DUAL_table
Historia
La tabla DUAL fue creada por Chuck Weiss de Oracle corporation para proporcionar una tabla para unirse en vistas internas:
Creé la tabla DUAL como un objeto subyacente en el Diccionario de datos de Oracle. Nunca fue pensado para ser visto en sí mismo, sino que se usó dentro de una vista que se esperaba consultar. La idea era que podías hacer una ÚNETE a la tabla DUAL y crear dos filas en el resultado por cada fila en tu tabla. Luego, utilizando GROUP BY, la unión resultante podría resumirse para mostrar la cantidad de almacenamiento para la extensión de DATOS y para la (s) extensión (es) de ÍNDICE. El nombre, DUAL, parecía adecuado para el proceso de crear un par de filas a partir de una sola. en.wikipedia.org/wiki/DUAL_table
Puede que no sea obvio de lo anterior, pero la tabla DUAL original tenía dos filas (de ahí su nombre). Hoy en día solo tiene una fila.
Mejoramiento
DUAL era originalmente una tabla y el motor de la base de datos realizaría el E / S de disco en la tabla al seleccionar DUAL. Este IO de disco generalmente era IO lógico (que no involucraba acceso a disco físico) ya que los bloques de disco generalmente ya estaban en caché en la memoria. Esto dio lugar a una gran cantidad de E / S lógicas contra la tabla DUAL.
Las versiones posteriores de la base de datos Oracle se han optimizado y la base de datos ya no realiza E / S físicas o lógicas en la tabla DUAL, aunque la tabla DUAL aún exista.
Es la mesa especial en Oracle. A menudo lo uso para cálculos o para verificar las variables del sistema. Por ejemplo:
-
Select 2*4 from dual
impresionesSelect 2*4 from dual
el resultado del cálculo -
Select sysdate from dual
imprime la fecha actual del servidor.
Es un objeto para poner en el de que devuelve 1 fila vacía. Por ejemplo: seleccione 1 de dual; devuelve 1
seleccione 21 + 44 de dual; devuelve 65
seleccione [secuencia] .nextval desde dual; devuelve el siguiente valor de la secuencia.
Es una especie de tabla ficticia con un solo registro utilizado para la selección cuando usted no está realmente interesado en los datos, sino que quiere que los resultados de algunas funciones del sistema en una instrucción de selección:
por ejemplo, select sysdate from dual;
Es una mesa ficticia con un elemento en ella. Es útil porque Oracle no permite declaraciones como
SELECT 3+4
Puedes solucionar esta restricción escribiendo
SELECT 3+4 FROM DUAL
en lugar.
La tabla DUAL es una tabla especial de una fila presente de forma predeterminada en todas las instalaciones de base de datos Oracle. Es adecuado para usar en la selección de una pseudocolumna como SYSDATE o USER
La tabla tiene una sola columna VARCHAR2 (1) llamada DUMMY que tiene un valor de "X"
Puedes leer todo sobre esto en en.wikipedia.org/wiki/DUAL_table
Más datos sobre el DUAL ....
asktom.oracle.com/pls/asktom/…
Experimentos emocionantes hechos aquí, y explicaciones más emocionantes por parte de Tom.
Una especie de pseudo tabla con la que puede ejecutar comandos y recuperar resultados, como sysdate. También le ayuda a verificar si Oracle está activo y verificar la sintaxis de SQL, etc.
Una tabla de utilidades en Oracle con solo 1 fila y 1 columna. Se utiliza para realizar una serie de operaciones aritméticas y generalmente se puede utilizar cuando se necesita generar una salida conocida.
SELECT * FROM dual;
dará una sola fila, con una sola columna llamada "DUMMY" y un valor de "X" como se muestra aquí:
DUMMY ----- X
otra situación que requiere select ... from dual
es cuando queremos recuperar el código (definición de datos) para diferentes objetos de base de datos (como TABLA, FUNCIÓN, GATILLO, PAQUETE), utilizando la función DBMS_METADATA.GET_DDL
incorporada:
select DBMS_METADATA.GET_DDL(''TABLE'',''<table_name>'') from DUAL;
select DBMS_METADATA.GET_DDL(''FUNCTION'',''<function_name>'') from DUAL;
Es cierto que en la actualidad 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 necesitamos usar cualquier procedimiento PL / SQL dentro de una declaración 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 están tomadas del libro ''Oracle PL / SQL Recipes'' de Josh Juneau y Matt Arena