Informatica: как получить автоматически сгенерированный первичный ключ таблицы в отображении Informatica? - PullRequest
1 голос
/ 08 апреля 2011

Мой вопрос очень похож на приведенный ниже, но в информатической среде:

Получение индекса вставленной строки

Вот краткое резюме проблемы: я пытаюсь выяснить, как я могу вставить строку в таблицу, а затем узнать, какое значение было установлено для столбца auto_incremented id, чтобы я мог вставить дополнительные данные в другой стол. Наша цель - SQL Server 2008. У нас есть таблица, которая должна быть заполнена ETL-данными informatica, и приложение также использует ту же таблицу, поэтому мы не можем использовать генератор последовательностей informatica.

В прошлом, когда я использовал базу данных Oracle, в Informatica было доступно преобразование генератора последовательностей Oracle - но для сервера SQL я не уверен.

Любые решения, пожалуйста?

Ответы [ 3 ]

1 голос
/ 08 апреля 2012

Если заполняемые значения являются чистыми значениями последовательности и не имеют другого значения, вы можете использовать два генератора последовательности одновременно.Используйте генератор последовательности Informatica, который генерирует значения от -1 до отрицательной бесконечности.В то же время поле автоинкремента SQLserver будет содержать значения от 1 до бесконечности.Там никогда не будет столкновения.

0 голосов
/ 09 апреля 2011

Сначала заполните первую таблицу (таблицу с автоматически увеличенным идентификатором).После того, как это будет сделано, запустите другое сопоставление, в котором вы выполните поиск в этой таблице, получите значение идентификатора по некоторому другому значению идентифицируемого ключа в таблице и приступите к заполнению других таблиц (используя извлеченный идентификатор) по вашему желанию.

0 голосов
/ 08 апреля 2011

Можно использовать генератор последовательности с включенным флагом «Сброс», чтобы он начинался с 1 при каждом запуске сеанса, а затем использовать «Уточняющий запрос» для кэширования текущего максимального значения последовательности из целевой таблицы. Затем вы можете предсказать порядковый номер, который SQL Server сгенерирует при вставке записи, добавив NEXTVAL к максимальному значению.

...