Ключевое слово целевой таблицы Informatica

Как вы используете Informatica для загрузки данных в целевую таблицу, имя которой является зарезервированным ключевым словом SQL?

У меня возникла ситуация, когда я пытаюсь использовать Informatica для заполнения таблицы с именем Union, которая завершается со следующей ошибкой:

  • Сообщение SQL Server: неправильный синтаксис рядом с ключевым словом «Союз»
  • Ошибка драйвера базы данных...
  • Название функции: выполнить несколько
  • SQL Stmt: INSERT INTO UNION (UnionCode, UnionName и т. д.)

Мне сказали, что изменение свойств базы данных для использования идентификатора в кавычках решит эту проблему; однако я пробовал это, и, похоже, это работает только для источников, а не для целей.

И прежде чем кто-либо скажет очевидное - я не могу изменить имя целевой таблицы.


person jzacharuk    schedule 24.10.2013    source источник
comment
не могли бы вы написать в представлении?   -  person momobo    schedule 31.10.2013


Ответы (3)


Не могли бы вы попробовать переопределить имя таблицы в свойствах сеанса как «Союз» с кавычками.

person Samik    schedule 25.10.2013

Загрузите свои данные в таблицу с допустимым именем, имеющую ту же структуру, что и объединение. И в Post Sql этой цели вы можете переименовать таблицу с любым требуемым именем.

Бывший . Нажмите на цель (XUnion), перейдите в Post Sql и поместите оператор ниже -

RENAME XUnion to 'UNION' ; 
person upvan111    schedule 19.10.2014

Если какое-либо имя таблицы или имя столбца содержит зарезервированное слово базы данных, например MONTH или YEAR, сеанс завершается с ошибкой базы данных, когда служба интеграции выполняет SQL для базы данных. Вы можете создать и поддерживать зарезервированный файл слов, reswords.txt, в каталоге server/bin. Когда служба интеграции инициализирует сеанс, она ищет файл reswords.txt. Если файл существует, служба интеграции заключает в кавычки совпадающие зарезервированные слова при выполнении SQL для базы данных.

Используйте следующие правила и рекомендации при работе с зарезервированными словами.

Служба интеграции выполняет поиск в файле зарезервированных слов при создании SQL для подключения к исходной, целевой базе данных и базе данных поиска.

Если вы переопределяете SQL для источника, цели или поиска, вы должны заключить любое зарезервированное слово в кавычки.

Возможно, вам потребуется включить некоторые базы данных, такие как Microsoft SQL Server и Sybase, для использования стандартов SQL-92 в отношении идентификаторов в кавычках. Используйте среду соединения SQL для выполнения команды. Например, используйте следующую команду с Microsoft SQL Server:

SET QUOTED_IDENTIFIER ON 

Образец файла reswords.txt Чтобы использовать файл зарезервированных слов, создайте файл с именем reswords.txt и поместите его в каталог server/bin. Создайте раздел для каждой базы данных, для которой вам нужно хранить зарезервированные слова. Добавьте зарезервированные слова, используемые в любой таблице или имени столбца. Вам не нужно хранить в этом файле все зарезервированные слова для базы данных. Имена баз данных и зарезервированные слова в reswords.txt не чувствительны к регистру.

Ниже приведен пример файла reswords.txt:

[Teradata] МЕСЯЦ ИНТЕРВАЛ ДАТЫ [Oracle] ОПЦИЯ СТАРТ [DB2] [SQL Server] ТЕКУЩИЙ [Informix] [ODBC] МЕСЯЦ [Sybase]

person Community    schedule 23.02.2015