2015-10-02 2 views
0

Я новичок в ORDBMS, используя Oracle 10g express edition, и мне нужно получить идентификатор объекта каждой строки в таблице объектов. Я использую приведенный ниже пример.Как получить идентификатор объекта строки в oracle 10g?

CREATE TYPE person AS OBJECT(
name VARCHAR2(20) 
); 

CREATE TABLE person_table OF person; 
INSERT INTO person_table VALUES (person('Test')); 

Персональный персонаж и таблица person_table успешно созданы. Вставляется строка, и я могу получить строку, используя

SELECT * from person_table; 

Но исполняющий

SELECT REF(p) FROM person_table p; 

дает следующее сообщение об ошибке:

ORA-00932: inconsistent datatypes: expected NUMBER got REF SYS.PERSON

Как получить идентификатор объекта каждой строки таблицы? Любая помощь будет оценена.

+1

Вы имеете в виду 'rowid'? => http://docs.oracle.com/cd/B19306_01/server.102/b14200/pseudocolumns008.htm? – krokodilko

ответ

0

Я вижу, что ошибка относится к SYS.PERSON. Вы создали объект и таблицу в качестве пользователя SYS? Если да, попробуйте создать его как «обычного» пользователя, а не пользователя SYS.

+0

Я тоже пытался сделать это из обычной учетной записи, но это дает ту же ошибку. –

+0

Есть ли ошибка по-прежнему относится к SYS.PERSON? –

Смежные вопросы