Получить имя последовательности (Oracle)? - PullRequest
1 голос
/ 06 апреля 2011

У меня нет доступа к базе данных, но у меня есть возможность создавать объекты базы данных (через XML-файл). Документация xml говорит, что если я установлю атрибут с именем «identity» в true, то будет создана последовательность. Можно ли мне написать логику, которая бы возвращала имя последовательности, чтобы я мог использовать nextVal, когда пишу операторы INSERT?

Роберт

Вот документация , найдите слово "личность" ...

1 Ответ

6 голосов
/ 06 апреля 2011

Если вы можете запустить операторы select, то вы можете попытаться выбрать * из user_sequence, чтобы получить имена последовательностей.В противном случае, не могли бы вы прислать документацию для используемой вами утилиты создания базы данных, если она общедоступна.В противном случае будет очень трудно ответить на этот вопрос.

РЕДАКТИРОВАТЬ:

После просмотра документации, он сказал, что если вы создали таблицу с первичным ключом, это создастпоследовательность со следующими правилами, цитируемыми непосредственно из документации:

Первичные ключи должны содержать один подэлемент columnref, который включает в себя один атрибут name, который ссылается на имя столбца для включения в первичный ключ.В SQL Server ключ отображается как поле идентификатора с автоматически возрастающим значением.В Oracle автоматически создается последовательность с именем таблицы плюс суффикс _seq.

Таким образом, ваш запрос будет:

select * из всех последовательностей, где sequence_name = upper (tablename ||'_seq');

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