Я пытаюсь следующее:магазин ROWID в Oracle ОБЪЕКТА типа
CREATE TYPE T_TEST AS OBJECT (
TEST_ROWID ROWID,
TEST_DATA NUMBER(12)
);
/
Но я получаю сообщение об ошибке:
ORA-24344: success with compilation error
PLS-00530: Illegal type used for object type attribute: 'ROWID'.
Я хочу, чтобы хранить RowId, потому что они быстрее, чем индекс поиска.
Что такое хороший способ достижения вышеуказанного? Кастинг до и от VARCHAR2
, вероятно, принесет слишком много накладных расходов, используя индекс?
К сожалению, первая ошибка является опечаткой. Он назывался 'TEST_ROWID' и' TEST_DATA', затем я удалил суффикс TEST, чтобы «улучшить чтение» ... Будет корректироваться. –
@ davor Хорошо, какой индекс вы собираетесь использовать? Просто не применяйте функцию к индексированному столбцу – Multisync
Вместо 'ROWID' я мог бы использовать первичный ключ таблицы (' NUMBER (20) '). –