![]() |
Вставка в линкованный сервер
День добрый.
Есть сервер А Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Windows NT 5.2 <X64> (Build 3790: Service Pack 2) к нему подключен линкованный сервер (СУБД ORACLE) с именем RS (remote server) назовем сервер Б определено представление (view) на сервера А create view [VIEW] as SELECT [Column] FROM OPENQUERY(RS, 'SELECT * FROM Exchange.To_EXEC') запрос с сервера А insert into [VIEW] (Column) values ('UPDATE Exchange.HDR_TABLE SET CHECK_DATE = sysdate WHERE ExBilId = ''ЗНАЧЕНИЕ'' ') выдает ошибку Цитата:
Сам селект из удаленной БД работает отлично. Где он взял оператор RETURNING (который в ошибке)? что мешает? (изначально сервер А был Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) Windows NT 5.2 (Build 3790: Service Pack 2) и на нем все прекрасно работает) ------------------------------добавлено забавно, если выполнить тот же insert, но без вьюхи т.е. вместо Цитата:
Цитата:
Цитата:
------------------------------добавлено2 разница в ошибках, зависит от того, указано ли имя колонки в OPENQUERY т.е. OPENQUERY(RS, 'SELECT [Column] FROM Exchange.To_EXEC') - ошибка пропущенной части кода (Msg 7321) OPENQUERY(RS, 'SELECT * FROM Exchange.To_EXEC') - ошибка RETURNING (Msg 7343) |
Возможно, изначально была установлена другая версия поставщика OLE DB?
вставка во вьюхи imho нужна для реализации совместимости старых приложений, а вы похоже, что-то новое из костылей стоите |
ну в принципе да, т.к. изначально был другой widows server
в 2008 был только указанный OLE DB проблему решили путем удаления и создания вьюх на всех задействованных серверах, с конкретным указанием всех полей. т.е. было Цитата:
2. изменили вьюху [VIEW] Цитата:
|
Время: 01:40. |
Время: 01:40.
© OSzone.net 2001-