Как получить ссылку в утверждении выбора? - PullRequest
0 голосов
/ 22 октября 2018

Я работаю с типами Oracle 12c.

Допустим, у меня есть тип с именем TY.

Я хотел бы сделать этот запрос:

select ref(TY(p1,p2,...,pn)) from dual;

Работает без ref(...).

Есть ли способ добиться этого?

1 Ответ

0 голосов
/ 22 октября 2018

В документации Oracle говорится об REF :

REF содержит следующие три логических компонента:

  • OID объектаобъект ссылается.Сгенерированный системой OID имеет длину 16 байтов.Размер OID на основе первичного ключа зависит от размера столбцов первичного ключа.

  • OID таблицы или представления, содержащего объект, на который ссылаются, длиной 16 байтов.

  • подсказка Rowid длиной 10 байт.

Это все локационные атрибуты.Они однозначно идентифицируют экземпляр объекта в объектно-реляционной таблице.Ваш запрос не выполнен, потому что вы пытаетесь сослаться на временный объект.

Значение REF в том, что они позволяют нам ссылаться на существующий объект, поэтому мы можем перемещаться по иерархиям объектов, применять ограничения и т. Д. То, что вы пытаетесь сделать, не подходит для этого использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...