Oracle
 sql >> база данни >  >> RDS >> Oracle

Създайте и конфигурирайте Oracle Linked Server в SQL Server

Тази статия обяснява стъпка по стъпка процеса на създаване и конфигуриране на свързан сървър между Oracle 19c и SQL Server 2019.

Предварителни условия за създаване на свързан сървър

За демонстрация инсталирах SQL Server 2019 на моята работна станция. Заедно с него инсталирах Oracle 19c и създадох екземпляр на име СЛУЖИТЕЛ . В по-нататъшните си статии ще обясня стъпка по стъпка процеса на инсталиране и конфигуриране на Oracle 19c.

За да конфигурираме свързания сървър, първо трябва да създадем база данни в Oracle и след това да създадем потребител в Oracle DB. Командата CREATE USER ще го направи. Ключовата дума GRANT осигурява свързването ,ресурс , и неограничено пространство за таблици привилегии на потребителя. Можете да се обърнете към тази статия за повече подробности относно ключовата дума CREATE USER.

Отворете SQL Plus и го свържете от Oracle, като използвате следната команда:

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

Командата подканва за паролата. Оставете го празно и натиснете Enter .

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

Сега сме свързани успешно с екземпляра на Oracle. Изпълнете следната заявка, за да създадете потребител с име nisarg :

SQL> create user nisarg identified by "[email protected]";
User-created. 

Следващата заявка предоставя подходящото разрешение на nisarg потребител:

SQL> grant connect,resource, unlimited tablespace to nisarg;
Grant succeeded.

Създайте таблица в базата данни на служителите

Създаваме три таблици:tblemployee ,tblDepartment , и tblDesignation . Външният ключ е наtblemployee маса. Колоните за външен ключ са employee_dept_id и идентификационен_идентификатор_на_служител . Те се позовават на tblDepartment и tblDesignation маси. Скриптове за създаване на таблиците са по-долу.

Създава tblemployee таблица:

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;

Създайте tblDepartment таблица:

CREATE TABLE NISARG."tblDepartment" (
  "Dept_ID"   INTEGER GENERATED ALWAYS AS IDENTITY (
  MAXVALUE 1000000000000000000000000000),
  "Dept_name" NVARCHAR2(50)
)
TABLESPACE USERS;

Създайте tblDesignation таблица:

CREATE TABLE NISARG."tblDesignation" (
  "Designation_ID"   NUMBER(10, 0) GENERATED ALWAYS AS IDENTITY (
  MAXVALUE 1000000000000000000000000000),
  "Designation_Name" NVARCHAR2(50)
)
TABLESPACE USERS;

Тук можете да видите диаграмата на ER:

Сега нека създадем свързания сървър.

Създайте свързания сървър с помощта на SSMS

Когато инсталираме Oracle 19c, клиент или сървър, доставчик на име OraOLEDB.Oracle ще бъде създадена. Тези доставчици осигуряват комуникация между SQL Server и други източници на данни или бази данни.

След като инсталирате Oracle, можете да видите, че доставчикът на OLEDB е създаден под Доставчици възел на SQL Server Management Studio.

Преди да създадем нов свързан сървър, трябва да активираме A забавен процес параметър.

Щракнете с десния бутон върху OraOLEDB.Oracle и щракнете върху Свойства :

В Опции на доставчика екран, щракнете върху Разрешаване на процес . Щракнете върху OK за да запазите конфигурацията:

За да създадете свързан сървър, отворете SSMS и се свържете с двигателя на базата данни. Разгънете Обекти на сървъра> Свързани сървъри> Нов свързан сървър :

В прозореца за конфигурация посочете следните подробности:

  1. Свързан сървър . Посочете името на свързания сървър. Това име не трябва да съдържа интервал или други знаци . В нашия случай името на свързания сървър е ORACLESERVER .
  2. Тип сървър . Можете да изберете SQL Server или други източници на данни. В нашия случай създаваме свързан сървър между Oracle и SQL Server. Затова изберете Други данни източник .
  3. Доставчик . Изберете името от Доставчик падащо меню. В нашия случай това е Oracle Доставчик за OLEDB .
  4. Източник на данни . Името на източника на данни е името на услугата на екземпляра на Oracle . В нашия случай това е сслужител .

Можете да видите списъка с услугите под Именуване на услуги на Конфигурацията на Oracle Net мениджър> Именуване на услугата> изберете името на услугата.

Сега нека конфигурираме настройките за сигурност, за да се свържем със сървъра на базата данни на Oracle:в Нов свързан сървър прозорец, отидете на Сигурност раздел.

Ние установяваме връзката с помощта на Отдалечено влизане и парола. За това изберете Да се ​​направи с помощта на този контекст за сигурност опция и посочете идентификационните данни:

За да изпълняваме отдалечено съхранени процедури, трябва да активираме RPC (отдалечено извикване на процедура) в свързания сървър.

Отидете на Опции на сървъра раздел и задайте RPC стойност като Вярно :

Сега щракнете върху OK за създаване на свързан сървър. След като бъде направено успешно, можете да го видите под LinkedIn сървъри възел в SSMS:

Създайте свързан сървър с помощта на T-SQL

Можете да изпълните T-SQL скрипта, за да създадете свързан сървър. След това, за да добавите свързан сървър, можете да използвате sp_addlinkedserver съхранена процедура. За да конфигурирате входа за свързания сървър, можете да използвате sp_addlinkedsrvlogin съхранена процедура. За да зададете конфигурационните параметри, можете да използвате sp_serveroption съхранена процедура.

В нашия случай трябва да изпълните следния код, за да добавите свързания сървър:

USE [master]
GO
EXEC master.dbo.sp_addlinkedserver @server = N'ORACLESERVER', 
@srvproduct=N'Oracle', @provider=N'OraOLEDB.Oracle', @datasrc=N'employee'

Изпълнете следния код, за да конфигурирате сигурността на свързания сървър:

USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ORACLESERVER',
@useself=N'False',@locallogin=NULL,@rmtuser=N'nisarg',@rmtpassword='########'

Следният код е за настройка на конфигурационните параметри:

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

Сега нека тестваме конфигурацията, като запитаме данните.

Тествайте свързаността чрез заявка за данните

За да тествате свързаността, стартирайте SQL Server Management Studio и изпълнете следната заявка:

select * from [oracleserver]..NISARG.tblEmployee

Изходът на заявката:

Както можете да видите, заявката е изпълнена успешно. Показва успешната конфигурация на свързания сървър.

Сега нека създадем съхранена процедура в SQL Server за достъп до данните от базата данни на Oracle и стартиране на Oracle SQL заявки:

create procedure sp_view_employee
as
begin
select * from [oracleserver]..NISARG.tblEmployee
end

Изпълнете командата по-долу, за да изпълните съхранената процедура:

Exec sp_view_employee

Изходът на заявката:

Нека изпълним параметризираната съхранена процедура. Кодът е следният:

create procedure sp_view_employee_name
@employeeName varchar(50)
as
begin
select * from [oracleserver]..NISARG.tblEmployee where [email protected]
end

Изпълнете процедурата:

exec sp_view_employee 'Nisarg Upadhyay'

Изходът на заявката:

Резюме

По този начин можете да конфигурирате свързания сървър в Oracle срещу SQL Server 2019. Описахме процеса стъпка по стъпка и се надяваме, че тази статия ще ви помогне в работата ви.

Прочетете също

Подводни камъни при използването на свързани сървъри


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изберете всички колони и брой (*) в една и съща заявка

  2. Добра справка за Oracle PL/SQL

  3. Начало на Oracle само за четене

  4. SUBSTR() Функция в Oracle

  5. Има ли по-добър оператор на Oracle, който да направи нулева безопасна проверка на равенството?