utilizar resultado select como nombre de tabla
Hola a todos. Lo que quiero hacer es utilizar el resultado de una select como nombre de una tabla en otra select. Todo esto en una misma consulta, anidada. Como yo lo he pensado no parece ser posible asà que si alguien sabe cómo hacerlo se lo agradeceré muchÃsimo. Un ejemplo de lo que quiero hacer es:
select tabla.*
from (
select cons.TABLE_NAME
from
ALL_CONSTRAINTS cons1, ALL_CONSTRAINTS cons2
where
cons1.TABLE_NAME = 'TIPOS'
and cons1.CONSTRAINT_TYPE = 'R'
and cons2.CONSTRAINT_TYPE = 'P'
and cons2.CONSTRAINT_NAME = cons1.R_CONSTRAINT_NAME
) tabla
Muchas gracias. Un saludo.
select tabla.*
from (
select cons.TABLE_NAME
from
ALL_CONSTRAINTS cons1, ALL_CONSTRAINTS cons2
where
cons1.TABLE_NAME = 'TIPOS'
and cons1.CONSTRAINT_TYPE = 'R'
and cons2.CONSTRAINT_TYPE = 'P'
and cons2.CONSTRAINT_NAME = cons1.R_CONSTRAINT_NAME
) tabla
Muchas gracias. Un saludo.
La consulta que hiciste falla porque el alias \'cons\' no existe. Debe ser \'cons1\' o \'cons2\'.
Si no interpreto mal lo que quieres hacer, otra forma es:
select col.table_name detail,col.column_name col_detail, p.table_name master,cp.column_name col_masterfrom user_cons_columns col,
user_constraints c, user_constraints p, user_cons_columns cp
where c.constraint_type=\'R\' and
p.constraint_type in (\'U\',\'P\') and
c.constraint_name=col.constraint_name and
c.table_name=\'TIPOS\' and
c.r_owner=p.owner and
c.r_constraint_name=p.constraint_name and
p.constraint_name=cp.constraint_name and
col.position=cp.position
Saludos.
Si no interpreto mal lo que quieres hacer, otra forma es:
select col.table_name detail,col.column_name col_detail, p.table_name master,cp.column_name col_masterfrom user_cons_columns col,
user_constraints c, user_constraints p, user_cons_columns cp
where c.constraint_type=\'R\' and
p.constraint_type in (\'U\',\'P\') and
c.constraint_name=col.constraint_name and
c.table_name=\'TIPOS\' and
c.r_owner=p.owner and
c.r_constraint_name=p.constraint_name and
p.constraint_name=cp.constraint_name and
col.position=cp.position
Saludos.
