Stavo usando OpenQuery
Per ottenere il set di righe dalla tabella Oracle nel mio SQL Server. Poi trovo che c'è qualcosa di conosciuto come OPENROWSET
per recuperare tutte le righeServer collegato SQL a Oracle Openquery recupera una riga singola
ma non ha funzionato per me.
SELECT a.*
FROM OPENROWSET('MSDASQL',
'DRIVER={SQL Server};SERVER=INDIANBANK;UID=ags;PWD=mypass',
'Select * From ATM_PROGNOSIS.IR_ATMMON_AGS') AS a
Errore: -
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()).".
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied.".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".
Nome di Mio DSN: INDIANBANK
ho usato Microsoft OLE DB per driver ODBC Creare server collegato per connettersi a Oracle (ORACLE DB È SITUATO SU SERVER REMOTO)
My DSN Show Test Connection Suc ceeded. Come per My Linked Server.
Quando eseguo seguente query Select * From openquery(IndianBank,'Select * From ATM_PROGNOSIS.IR_ATMMON_AGS')
Si recuperare solo una riga
mio codice server collegato: -
EXEC master.dbo.sp_addlinkedserver @server = N'INDIANBANK', @srvproduct=N'IndianBankOracle', @provider=N'MSDASQL', @datasrc=N'INDIANBANK'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'INDIANBANK',@useself=N'False',@locallogin=NULL,@rmtuser=N'ags',@rmtpassword='########'
GO
EXEC master.dbo.sp_serveroption @server=N'INDIANBANK', @optname=N'collation compatible', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'INDIANBANK', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'INDIANBANK', @optname=N'dist', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'INDIANBANK', @optname=N'pub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'INDIANBANK', @optname=N'rpc', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'INDIANBANK', @optname=N'rpc out', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'INDIANBANK', @optname=N'sub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'INDIANBANK', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'INDIANBANK', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'INDIANBANK', @optname=N'lazy schema validation', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'INDIANBANK', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'INDIANBANK', @optname=N'use remote collation', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'INDIANBANK', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO
Il testo è un po 'confuso (almeno per me), si desidera ottenere dati da Oracle a mssql o in altro modo? – YvesR
@YvesR ottiene i dati da Oracle (server remoto) a mssql ... quindi ho creato il server collegato – Shaggy
Non sono mai riuscito a ottenere i dati da Oracle senza installare il client Oracle. Dopo aver creato una connessione per configurare TNSNAME. Poi sono stato in grado di accedere tramite ms sql, script, ecc. Il driver Oracle Oracle di Oracle fornito con il sistema non funziona correttamente per quanto ne so, quindi hai provato l'altro modo che ho descritto? – YvesR