Consultar un campo de un objeto oracle

Hola buen día
soy nuevo en oracle y tengo duda en una consulta, lo que quiero hacer es consultar un Campo:
tengo un objeto:
O_nombre (Nombre varchar,
                   Apellido  varchar)
a partir del objeto O_nombre creo un objeto:
O_Autor (nom_Autor O_Nombre,
               Edad number)
y creo un tabla libros:
libros(id_libro number,
          Autor O_autor,
          Editorial varchar)
por ejemplo si quiero consultar el autor del libro con id 123 seria:
Select libros.Autor from libros where id_libro=123;
y me devolvería un objeto de tipo nombre y la edad. Hasta aquí sin problemas.
lo que no puedo hacer es hacer una consulta del objeto nombre, mas o menos así:
Select libros.Autor.nom_autor from libros where id_libro=123;
Es decir que la consulta solo me muestre el nombre y el apellido del autor del libro 123.
Aclaro que mi base de datos es diferente pero quise poner este ejemplo para simplificarlo. Básicamente lo que quiero es consultar un objeto dentro de otro objeto de una tabla
desde ya muchas gracias por la ayuda que me puedan brindar.
Respuesta
1
Para poder hacer referencia a un campo en específico de un objeto se debe poner un alias a la tabla a consultar. Espero que este ejemplo te sirva.
Create or replace
type tipo as object
(
Nombre varchar2(20),
edad number
);
/
Create table prueba
(
Id_l number(10),
datos tipo
);
/
insert into prueba values (1, tipo('jose',10));
insert into prueba values (2, tipo('ana',20));
/
select id_l, a.datos.nombre as nombre, a.datos.edad as edad from prueba a;
Resultado
id_l nombre edad
---------- -------------------- ----
1      jose 10
2      ana 20
Saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas