Я пытаюсь подключиться к базе данных DB2 с помощью собственного поставщика OLE DB IBM. Поведение этого соединителя по умолчанию состоит в том, чтобы обрабатывать varchar, char и текстовые данные как тип OLEDB = DT_WSTR
(Unicode)
редактировать: зачем мне это?
Это необходимо для предотвращения необходимости выполнять ручное преобразование данных (от DT_WSTR
до DT_STR
) в SSIS для каждого строкового столбца, обнаруженного в базе данных DB2. В моем случае использования есть сотни, если не тысячи экземпляров этого).
edit: Какая версия DB2? = DB2 v11.1.3.3
Я искал в справочной документации и форумах IBM ответы на вопросы о том, как изменить соединение, чтобы по умолчанию для данных строки / varchar было указано значение DT_STR
(ansi, 1252).
Похоже, есть некоторые полезные ключевые слова, которые я могу потенциально использовать в строке подключения, но все мои цепочки не увенчались успехом ...
Строки подключения, которые я пробовал ...
Data Source=<<source_removed>>;User ID=<<user_removed>>;Provider=IBMDADB2.DB2COPY1;Persist Security Info=True;Location=;UNICODE=FALSE;CLIENT_LOCALE=en_US.CP1252;DB_LOCALE=en_US.819;Extended Properties=REPORTSTRINGASWSTRING=FALSE;
Data Source=<<source_removed>>;User ID=<<user_removed>>;Provider=IBMDADB2.DB2COPY1;Persist Security Info=True;Location=;CLIENT_LOCALE=en_US.CP1252;DB_LOCALE=en_US.CP1252;Extended Properties=REPORTSTRINGASWSTRING=FALSE;
Data Source=<<source_removed>>;User ID=<<user_removed>>;Provider=IBMDADB2.DB2COPY1;Persist Security Info=True;Location=;UNICODE=FALSE;Extended Properties=REPORTSTRINGASWSTRING=FALSE;
Исходные столбцы определены в DB2 как ...
и языковой стандарт DB2 En_US
PARN_LOCN_RM_CD VARCHAR(15),
PARN_LOCN_RM_DESC VARCHAR(255),
Вот как это ведет себя в настоящее время, но я бы хотел, чтобы по умолчанию оно было DT_STR