Выберите объект внутри объекта в PL / SQL - PullRequest
0 голосов
/ 25 мая 2018

У меня есть следующий код:

SET SERVEROUTPUT ON

CREATE OR REPLACE TYPE work_t AS OBJECT(
company VARCHAR2(50),
salary NUMBER(5)
);
/

CREATE OR REPLACE TYPE person_t AS OBJECT(
personnum NUMBER(5),
personname VARCHAR2(20),
personwork work_t
);
/

CREATE TABLE people OF person_t(
PRIMARY KEY (personnum)
);

INSERT INTO people VALUES(12, 'George', work_t('Google',75500));  

Если я хочу напечатать имя пользователя:

DECLARE
per1 person_t;
BEGIN
SELECT VALUE(e) INTO per1 FROM people e WHERE e.personnum = 12;
dbms_output.put_line(per1.personname);
END;
/

Теперь я хочу напечатать компанию (и обновить ее в разных блоках), ноЯ не знаю, как это сделать.

Спасибо.

1 Ответ

0 голосов
/ 25 мая 2018

Просто добавьте

dbms_output.put_line(per1.personwork.company);

в

DECLARE
per1 person_t;
BEGIN
SELECT VALUE(e) INTO per1 FROM people e WHERE e.personnum = 12;
dbms_output.put_line(per1.personname);
dbms_output.put_line(per1.personwork.company);
END;
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...