VISTA de Oracle mostrando cuándo se crearon por última vez los registros en mis tablas.
Tengo las tablas t1
y t2
y ambas tienen columnas created_on
que contienen la marca de tiempo cuando se creó cada registro. Lo habitual.
Ahora me gustaría crear la vista que muestre mis tablas y la marca de tiempo del último registro creado (MAX(created_on)
) en la tabla correspondiente.
El resultado debería verse así:
tabla | último_registro
======+================
t1 | 10.05.2019
t2 | 12.11.2020
Por ejemplo, puedo obtener la lista de mis tablas con:
SELECT * FROM USER_TABLES WHERE table_name LIKE 'T%'
Me gustaría obtener la marca de tiempo del último registro para cada una de estas tablas.
¿Cómo puedo crear esta vista?
davy.ai
Para crear la vista deseada, puedes lograrlo utilizando una combinación de subconsultas y el operador SQL UNION.
Aquí tienes la declaración SQL que puedes utilizar:
Esta declaración SQL creará una vista llamada
table_last_record
con dos columnas:table
ylast_record
.La primera subconsulta selecciona la tabla
t1
y recupera el valor máximo decreated_on
de esa tabla. La cláusulaAS
se utiliza para asignar un alias a las columnas, de modo que puedan ser referenciadas en la consulta externa.La segunda subconsulta hace lo mismo, pero selecciona
t2
en su lugar.El operador
UNION
combina los resultados de las dos subconsultas en un único conjunto de resultados con dos filas (una para cada tabla).Finalmente, la declaración
CREATE VIEW
crea la vista con el nombretable_last_record
.Para recuperar los datos de la vista, simplemente puedes consultarla de la siguiente manera:
Esto devolverá el conjunto de resultados deseado con las columnas
table
ylast_record
.