Questo articolo spiega il processo passo dopo passo di creazione e configurazione di un server collegato tra Oracle 19c e SQL Server 2019.

Prerequisiti per creare un server collegato
A scopo dimostrativo, ho installato SQL Server 2019 sulla mia workstation. Insieme ad esso, ho installato Oracle 19c e ho creato un'istanza denominata EMPLOYEE . Nei miei ulteriori articoli, spiegherò passo passo anche il processo di installazione e configurazione di Oracle 19c.
Per configurare il server collegato, dobbiamo prima creare un database in Oracle e quindi creare un utente nel DB Oracle. Il comando CREATE USER lo farà. La parola chiave GRANT garantisce la connessione , risorsa e tablespace illimitato privilegi all'utente. Puoi fare riferimento a questo articolo per maggiori dettagli sulla parola chiave CREATE USER.
Apri SQL Plus e collegalo tramite Oracle utilizzando il seguente comando:
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Feb 21 17:40:15 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Enter user-name: sys as sysdba

Il comando richiede la password. Tienilo vuoto e premi Invio .
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Enter user-name: sys as sysdba
Enter password:
Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

Ora siamo connessi correttamente all'istanza Oracle. Eseguire la query seguente per creare un utente denominato nisarg :
SQL> create user nisarg identified by "example@sqldat.com";
User-created.

La query successiva concede l'autorizzazione appropriata al nisarg utente:
SQL> grant connect,resource, unlimited tablespace to nisarg;
Grant succeeded.

Crea una tabella nel database dei dipendenti
Stiamo creando tre tabelle:tblemployee , tblDepartment e tblDesignation . La chiave esterna si trova su tblemployee tavolo. Le colonne della chiave esterna sono employee_dept_id e employee_designation_id . Si riferiscono a tblDepartment e tblDesignation tavoli. Di seguito sono riportati gli script per creare le tabelle.
Crea il tblemployee tabella:
CREATE TABLE NISARG."tblEmployee" (
ID NUMBER(10, 0) GENERATED ALWAYS AS IDENTITY (
MAXVALUE 1000000000000000000000000000),
"Employee_name" NVARCHAR2(50),
"Employee_dept_id" INTEGER,
"Address" NVARCHAR2(1000),
"ContactNumber" NVARCHAR2(50),
"Employee_designation_id" INTEGER,
CONSTRAINT FK_TBLEMPLOYEE_EMPLOYEE_DEPT_ID FOREIGN KEY ("Employee_dept_id")
REFERENCES NISARG."tblDepartment" ("Dept_ID"),
CONSTRAINT FK_TBLEMPLOYEE_EMPLOYEE_DESIGN FOREIGN KEY ("Employee_designation_id")
REFERENCES NISARG."tblDesignation" ("Designation_ID")
)
TABLESPACE USERS;
Crea il tblDepartment tabella:
CREATE TABLE NISARG."tblDepartment" (
"Dept_ID" INTEGER GENERATED ALWAYS AS IDENTITY (
MAXVALUE 1000000000000000000000000000),
"Dept_name" NVARCHAR2(50)
)
TABLESPACE USERS;
Crea la tblDesignation tabella:
CREATE TABLE NISARG."tblDesignation" (
"Designation_ID" NUMBER(10, 0) GENERATED ALWAYS AS IDENTITY (
MAXVALUE 1000000000000000000000000000),
"Designation_Name" NVARCHAR2(50)
)
TABLESPACE USERS;
Qui puoi vedere il diagramma ER:

Ora creiamo il server collegato.
Crea il server collegato utilizzando SSMS
Quando installiamo Oracle 19c, client o server, un provider denominato OraOLEDB.Oracle verrà creato. Questi provider garantiscono la comunicazione tra SQL Server e altre origini dati o database.
Dopo aver installato Oracle, puoi vedere che il provider OLEDB è stato creato sotto i Provider nodo di SQL Server Management Studio.

Prima di creare un nuovo server collegato, dobbiamo abilitare la A in corso basso parametro.
Fare clic con il pulsante destro del mouse su OraOLEDB.Oracle e fai clic su Proprietà :

Nelle Opzioni del fornitore schermata, fai clic su Consenti in corso . Fare clic su OK per salvare la configurazione:

Per creare un server collegato, apri SSMS e connettiti al motore di database. Espandi Oggetti server> Server collegati> Nuovo server collegato :

Nella finestra di configurazione, specifica i seguenti dettagli:
- Server collegato . Specificare il nome del server collegato. Questo nome non deve contenere spazi o altri caratteri . Nel nostro caso, il nome del server collegato è ORACLESERVER .
- Tipo di server . È possibile scegliere SQL Server o altre origini dati. Nel nostro caso, stiamo creando un server collegato tra Oracle e SQL Server. Pertanto, scegli Altri dati fonte .
- Fornitore . Seleziona il nome dal Provider menu a discesa. Nel nostro caso, è Oracle Provider per OLEDB .
- Fonte dati . Il nome dell'origine dati è il nome del servizio dell'istanza Oracle . Nel nostro caso, è dipendente .

Puoi visualizzare l'elenco dei servizi in Denominazione dei servizi della Configurazione Oracle Net manager> Denominazione dei servizi> seleziona il nome del servizio.

Ora configuriamo le impostazioni di sicurezza per la connessione al server di database Oracle:nel Nuovo server collegato finestra, vai alla Sicurezza sezione.
Stabiliamo la connessione utilizzando il Accesso remoto e password. Per questo, seleziona Be made using this security context opzione e specificare le credenziali:

Per eseguire stored procedure remote, dobbiamo abilitare RPC (remote procedure call) nel server collegato.
Vai a Opzioni server sezione e imposta l'RPC valore come Vero :

Ora, fai clic su OK per creare un server collegato. Una volta eseguito correttamente, puoi visualizzarlo sotto i Server LinkedIn nodo in SSMS:

Crea un server collegato utilizzando T-SQL
È possibile eseguire lo script T-SQL per creare un server collegato. Quindi, per aggiungere un server collegato, puoi utilizzare sp_addlinkedserver procedura memorizzata. Per configurare l'accesso per il server collegato, puoi utilizzare sp_addlinkedsrvlogin procedura memorizzata. Per impostare i parametri di configurazione, puoi utilizzare sp_serveroption procedura memorizzata.
Nel nostro caso, dovresti eseguire il seguente codice per aggiungere il server collegato:
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver @server = N'ORACLESERVER',
@srvproduct=N'Oracle', @provider=N'OraOLEDB.Oracle', @datasrc=N'employee'
Eseguire il codice seguente per configurare la sicurezza del server collegato:
USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ORACLESERVER',
@useself=N'False',@locallogin=NULL,@rmtuser=N'nisarg',@rmtpassword='########'
Il codice seguente serve per impostare i parametri di configurazione:
EXEC master.dbo.sp_serveroption @server=N'ORACLESERVER', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'ORACLESERVER', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'ORACLESERVER', @optname=N'dist', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'ORACLESERVER', @optname=N'pub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'ORACLESERVER', @optname=N'rpc', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'ORACLESERVER', @optname=N'rpc out', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'ORACLESERVER', @optname=N'sub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'ORACLESERVER', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'ORACLESERVER', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'ORACLESERVER', @optname=N'lazy schema validation', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'ORACLESERVER', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'ORACLESERVER', @optname=N'use remote collation', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'ORACLESERVER', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO
Ora, testiamo la configurazione interrogando i dati.
Verifica la connettività interrogando i dati
Per testare la connettività, avviare SQL Server Management Studio ed eseguire la query seguente:
select * from [oracleserver]..NISARG.tblEmployee
L'output della query:

Come puoi vedere, la query è stata eseguita correttamente. Indica la corretta configurazione del server collegato.
Ora creiamo una stored procedure in SQL Server per accedere ai dati dal database Oracle ed eseguire query Oracle SQL:
create procedure sp_view_employee
as
begin
select * from [oracleserver]..NISARG.tblEmployee
end
Eseguire il comando seguente per eseguire la stored procedure:
Exec sp_view_employee
L'output della query:

Eseguiamo la stored procedure parametrizzata. Il codice è il seguente:
create procedure sp_view_employee_name
@employeeName varchar(50)
as
begin
select * from [oracleserver]..NISARG.tblEmployee where example@sqldat.com
end
Esegui la procedura:
exec sp_view_employee 'Nisarg Upadhyay'
L'output della query:

Riepilogo
In questo modo, puoi configurare il server collegato in Oracle rispetto a SQL Server 2019. Abbiamo descritto il processo passo dopo passo e speriamo che questo articolo ti aiuti nel tuo lavoro.
Leggi anche
Insidie dell'utilizzo del server collegato