Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Гляньте, трабл SQL 2005 + Oracle 10, Linked server  [new]
mellon
Member

Откуда:
Сообщений: 1
Доброго времени суток!

Провайдер: OraOLEDB.Oracle.
Запрос возвращает одну строку и собщение:

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "OraOLEDB.Oracle" for linked server "ORCLDB" reported an error. The provider reported an unexpected catastrophic failure.
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "OraOLEDB.Oracle" for linked server "ORCLDB".
31 янв 08, 16:17    [5228390]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Гляньте, трабл SQL 2005 + Oracle 10, Linked server  [new]
aleksey2001
Member

Откуда: Vancouver, BC
Сообщений: 281
Наткнулся на эти же грабли. Пришлось полазить по гуглу прежде чем нашел подходящее решение.
Точнее здесь комплекс мер был предпринят. Писал для начальства по англицки, так что извините поделюсь в оригинале без перевода.

1. OLE DB provider for linked server have to be OraOLEDB.Oracle (not MSDAORA).

2. OraOLEDB provider setting "Allow inprocess" MUST be set.

3. Registry settings for OLE DB provider has to be as follows

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_ODACHome1\OLEDB]
[b]"FetchSize"="101"[/b]

4. Registry settings for MSDTC have to be as follows

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC]
"AllowOnlySecureRpcCalls"=dword:00000000
"FallbackToUnsecureRPCIfNecessary"=dword:00000000
"TurnOffRpcSecurity"=dword:00000001
"MaxLogSize"=dword:00000200
"ServiceNetworkProtocols"=dword:00000021

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\ASR]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI]
"OracleXaLib"="oraclient10.dll"
"OracleSqlLib"="orasql10.dll"
"OracleOciLib"="oci.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security]
"NetworkDtcAccess"=dword:00000001
"NetworkDtcAccessAdmin"=dword:00000001
"NetworkDtcAccessClients"=dword:00000001
"NetworkDtcAccessTransactions"=dword:00000001
"NetworkDtcAccessInbound"=dword:00000001
"NetworkDtcAccessOutbound"=dword:00000001
"NetworkDtcAccessTip"=dword:00000000
"XaTransactions"=dword:00000001
"DomainControllerState"=dword:00000000
"AccountName"="NT Authority\\NetworkService"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL]
"mtxoci.dll"="C:\\WINDOWS\\system32\\mtxoci.dll"
"msdaora.dll"="C:\\Program Files\\Common Files\\System\\Ole DB\\msdaora.dll"

5. Options for linked server MUST include RPC Out: True
15 окт 09, 03:33    [7788250]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Гляньте, трабл SQL 2005 + Oracle 10, Linked server  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
aleksey2001,

автор
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_ODACHome1\OLEDB]
"FetchSize"="101"


Наступил на теже грабли с этим провайдером. Изменение значений реестра требует рестарта. Если нет такой возможности, то проблема решается пересозданием линкованого сервера с параметром

@provstr=N'FetchSize=101'
1 дек 10, 12:44    [9868231]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Гляньте, трабл SQL 2005 + Oracle 10, Linked server  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Решил проблему использовав дургой оракловый драйвер

exec sp_addlinkedserver
@server = 'ORALINK'
,@srvproduct = 'Oracle'
--,@provider = 'OraOLEDB.Oracle'
,@provider = 'MSDAORA'
--,@provider = 'MSDAORA.1'
,@datasrc = 'name servera';

exec sp_addlinkedsrvlogin
@rmtsrvname = 'ORALINK'
,@useself = 'FALSE'
,@locallogin = NULL
,@rmtuser = 'x'
,@rmtpassword = 'x';
8 апр 15, 11:11    [17487186]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить