Копирование таблиц между базами данных с различной аутентификацией DB2 - PullRequest
0 голосов
/ 20 октября 2011

Привет, сообщество StackOverflow,

У меня такой вопрос: у меня есть таблица, скажем USER_ADDR с кучей столбцов в одной базе данных, скажем DB001 Мне нужно скопировать содержимое этой таблицы(на основе критериев) к аналогичной таблице USER_ADDR (то же имя, да) в другой базе данных DB002 с другим идентификатором пользователя и pwd.

Мне нужно сделать это в хранимой процедуре, которая будетвыполняется с использованием .net Framework.Я пробовал это:

INSERT INTO "DB002".USER_ADDR (--column names--)  
SELECT * 
FROM "DB001".USER_ADDR 
WHERE ID = "APPLICATION_NO_IN";

Я получаю:

0: Произошла ошибка: [IBM] [DB2 / NT64] SQL0204N "DB002.USER_ADDR" - это неопределенное имя.НОМЕР ЛИНИИ = 15.SQLSTATE = 42704: -204: IBM.Data.DB2: 42704

Что я делаю не так?

Заранее спасибо Vashist

Ответы [ 2 ]

0 голосов
/ 08 ноября 2011

Я удаляю свой другой ответ после просмотра дополнительной информации о вашем случае использования. Загрузка в основном для массовых загрузок большого количества записей.

в этом случае я бы порекомендовал вам сделать что-то вроде открытия connection1 в .Net для вашего источника данных, выбрать данные и сохранить их в .Net DataTable. При необходимости вы можете сделать это в сохраненном процессе, который возвращает либо значения отдельных столбцов для одной строки, либо вернуть курсор (набор строк), который содержит все столбцы (и строки). Затем в .Net откройте соединение 2 и вставьте данные из таблицы данных в пункт назначения. Опять же, это можно сделать с помощью сохраненного процесса.

0 голосов
/ 20 октября 2011

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

...