|
Выполнить sp_executeSQL через LinkedServer из MSSQL в POSTGRESQL с последующей вставкой
|
|||
---|---|---|---|
#18+
Добрый день. Собственно, сама суть вопроса в теме. Опишу подробнее. Вводные 1) Есть БД на POSTGRESQL, на которой расположена view posgrView 2) Есть БД на MSSQL, в которой необходимо получить данные из posgrView по динамически изменяемым условиям 3) Для других связанных серверов на MSSQL настроен DTC 4) Есть LinkedServer LS_Postgr на MSSQL, в настройках которого значение настройки "Разрешить продвижение распределенных транзакций для RPC" установлено в false Что я делаю Создана процедура, в которой в зависимости от пришедших параметров, в nVarchar-переменную набирается запрос для OpenQuery Далее я выполняю его через Код: sql 1.
Результат Все хорошо, пока я не пытаюсь вставить полученные данные во временную таблицу для последующих обработок. Если же пытаюсь, то получаю ошибку OLE DB provider "MSDASQL" for linked server "LS_Postgr" returned message "MSDTC XARMCreate error". Сообщение 7391, уровень 16, состояние 2, строка 1 The operation could not be performed because OLE DB provider "MSDASQL" for linked server "LS_Postgr" was unable to begin a distributed transaction. Суть ошибки более-менее понятна, вроде, но не понятно, возможно ли как-либо от нее избавиться? Куда смотреть, что почитать? Настройки LinkedServer в приложенной картинке. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2021, 16:38 |
|
Выполнить sp_executeSQL через LinkedServer из MSSQL в POSTGRESQL с последующей вставкой
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2021, 16:44 |
|
Выполнить sp_executeSQL через LinkedServer из MSSQL в POSTGRESQL с последующей вставкой
|
|||
---|---|---|---|
#18+
1. "The operation could not be performed because OLE DB provider "MSDASQL" for linked server "LS_Postgr" was unable to begin a distributed transaction." Это не смущает? 2. Какой ОЛЕДБ провайдер для PostgreSQL используете? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2021, 21:14 |
|
Выполнить sp_executeSQL через LinkedServer из MSSQL в POSTGRESQL с последующей вставкой
|
|||
---|---|---|---|
#18+
RuCosinus, зачем LinkedServer, исчерпаны все остальные возможности? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2021, 22:41 |
|
Выполнить sp_executeSQL через LinkedServer из MSSQL в POSTGRESQL с последующей вставкой
|
|||
---|---|---|---|
#18+
Ролг Хупин 1. "The operation could not be performed because OLE DB provider "MSDASQL" for linked server "LS_Postgr" was unable to begin a distributed transaction." Это не смущает? Смущает. Именно это и смущает, но я решил, что это как раз к DTC, поэтому настройки LinkedServer-а и привел. Если это не так, поправьте, пожалуйста. Ролг Хупин 2. Какой ОЛЕДБ провайдер для PostgreSQL используете? Microsoft OLE DB Provider for ODBC Drivers Владислав Колосов RuCosinus, зачем LinkedServer, исчерпаны все остальные возможности? А что не так с LinkedServer? Мне казалось этот способ наиболее правильным и быстрым. Я не прав? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2021, 09:16 |
|
Выполнить sp_executeSQL через LinkedServer из MSSQL в POSTGRESQL с последующей вставкой
|
|||
---|---|---|---|
#18+
RuCosinus, Сделайте loopback-сервер Код: sql 1. 2. 3. 4. 5. 6. 7.
И заполняйте таблицу так Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2021, 09:59 |
|
|
start [/forum/topic.php?fid=46&fpage=34&tid=1685094]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 143ms |
0 / 0 |