Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme sur la configuration de serveur lié avec SQL Server 200 5

1 réponse
Avatar
Romelard Fabrice [MVP]
Bonjour,

Je suis face à un probblème de connexion de serveur lié.
Deux installations existent :
SQL Server 2000 - ORACLE 9.2.0.1
et
SQL Server 2005 - ORACLE 9.2.0.1

Sur les deux serveur SQL sont installés les drivers OLEDB 10.1.0.2.0. La
connexion du serveur lié avec la version 2000 est OK, la connexion avec le
serveur lié SQL Server 2005 provoque des erreurs dont voila le script de
création ainsi que le résultat.

---------------------------------------------------------------------------------
CREATION LINKED SERVER :
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver @server = N'LINK_ORACLE_OLEDB',
@srvproduct=N'TNSORA', @provider=N'OraOLEDB.Oracle', @datasrc=N'TNSORA',
@provstr=N'TNSORA'
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB',
@optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB',
@optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB',
@optname=N'rpc', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB', @optname=N'rpc
out', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB',
@optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB',
@optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB',
@optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB', @optname=N'use
remote collation', @optvalue=N'true'
GO
USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'LINK_ORACLE_OLEDB',
@locallogin = N'sa', @useself = N'True'
GO
USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'LINK_ORACLE_OLEDB',
@locallogin = NULL , @useself = N'False', @rmtuser = N'NVPROD', @rmtpassword
= N'*****'
GO

---------------------------------------------------------------------------------
Requette de test :
SELECT * FROM OPENQUERY(LINK_ORACLE_OLEDB, 'SELECT * FROM TABLE_A_TESTER');

---------------------------------------------------------------------------------
Resultat :
Nom des colonnes > OK
1ere ligne des résultats > OK
Autres lignes non renvoyées et erreur levée

---------------------------------------------------------------------------------
Erreur Message :
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "OraOLEDB.Oracle" for linked server "LINK_ORACLE_OLEDB"
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
"LINK_ORACLE_OLEDB".
---------------------------------------------------------------------------------

Quelqu'un a une idée de l'origine de cette erreur ?

Merci d'avance

Cordialement
Romelard Fabrice

1 réponse

Avatar
Romelard Fabrice [MVP]
Bonjour,

Après avoir recherché différents paramètres, cela provenait d'une clé dans
la base de registre :
-----
[HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_OraClient10g_home1OLEDB]
....
"FetchSize"="100"
....
-----

Celle-ci était à 100 par défaut, il faut simplement la modifier à 101 et
tout refonctionne.
Si quelqu'un a une idée pourquoi 101 et pas 100 ?, je suis preneur.

Merci d'avance

Cordialement

Romelard Fabrice

"Romelard Fabrice [MVP]" a écrit :

Bonjour,

Je suis face à un probblème de connexion de serveur lié.
Deux installations existent :
SQL Server 2000 - ORACLE 9.2.0.1
et
SQL Server 2005 - ORACLE 9.2.0.1

Sur les deux serveur SQL sont installés les drivers OLEDB 10.1.0.2.0. La
connexion du serveur lié avec la version 2000 est OK, la connexion avec le
serveur lié SQL Server 2005 provoque des erreurs dont voila le script de
création ainsi que le résultat.

---------------------------------------------------------------------------------
CREATION LINKED SERVER :
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver @server = N'LINK_ORACLE_OLEDB',
@srvproduct=N'TNSORA', @provider=N'OraOLEDB.Oracle', @datasrc=N'TNSORA',
@provstr=N'TNSORA'
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB',
@optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB',
@optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB',
@optname=N'rpc', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB', @optname=N'rpc
out', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB',
@optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB',
@optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB',
@optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'LINK_ORACLE_OLEDB', @optname=N'use
remote collation', @optvalue=N'true'
GO
USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'LINK_ORACLE_OLEDB',
@locallogin = N'sa', @useself = N'True'
GO
USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'LINK_ORACLE_OLEDB',
@locallogin = NULL , @useself = N'False', @rmtuser = N'NVPROD', @rmtpassword
= N'*****'
GO

---------------------------------------------------------------------------------
Requette de test :
SELECT * FROM OPENQUERY(LINK_ORACLE_OLEDB, 'SELECT * FROM TABLE_A_TESTER');

---------------------------------------------------------------------------------
Resultat :
Nom des colonnes > OK
1ere ligne des résultats > OK
Autres lignes non renvoyées et erreur levée

---------------------------------------------------------------------------------
Erreur Message :
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "OraOLEDB.Oracle" for linked server "LINK_ORACLE_OLEDB"
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
"LINK_ORACLE_OLEDB".
---------------------------------------------------------------------------------

Quelqu'un a une idée de l'origine de cette erreur ?

Merci d'avance

Cordialement
Romelard Fabrice