Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Buat dan Konfigurasikan Oracle Linked Server di SQL Server

Artikel ini menjelaskan proses langkah demi langkah untuk membuat dan mengonfigurasi server tertaut antara Oracle 19c dan SQL Server 2019.

Prasyarat untuk membuat server tertaut

Untuk demonstrasi, saya telah menginstal SQL Server 2019 di workstation saya. Bersamaan dengan itu, saya menginstal Oracle 19c dan membuat instance bernama EMPLOYEE . Dalam artikel saya selanjutnya, saya juga akan menjelaskan langkah demi langkah instalasi dan proses konfigurasi Oracle 19c.

Untuk mengkonfigurasi server yang ditautkan, pertama-tama kita harus membuat database di Oracle dan kemudian membuat pengguna di Oracle DB. Perintah CREATE USER akan melakukannya. Kata kunci GRANT memastikan terhubung , sumber daya , dan ruang tabel tak terbatas hak istimewa kepada pengguna. Anda dapat merujuk ke artikel ini untuk detail selengkapnya tentang kata kunci CREATE USER.

Buka SQL Plus dan hubungkan dengan Oracle menggunakan perintah berikut:

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

Perintah meminta kata sandi. Biarkan kosong dan tekan 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

Sekarang, kita berhasil terhubung ke instance Oracle. Jalankan kueri berikut untuk membuat pengguna bernama nisarg :

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

Kueri berikutnya memberikan izin yang sesuai ke nisarg pengguna:

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

Membuat tabel pada database Karyawan

Kami membuat tiga tabel:tblemployee , tblDepartemen , dan tblDesain . Kunci asing ada di tblemployee meja. Kolom kunci asing adalah employee_dept_id dan employee_designation_id . Mereka merujuk ke tblDepartment dan tblDesain tabel. Script untuk membuat tabel ada di bawah.

Membuat karyawan tabel:

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;

Buat tblDepartment tabel:

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

Buat tblDesignation tabel:

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

Di sini Anda dapat melihat diagram ER:

Sekarang, mari kita buat server tertaut.

Buat Server Tertaut menggunakan SSMS

Saat kami menginstal Oracle 19c, klien atau server, penyedia bernama OraOLEDB.Oracle akan dibuat. Penyedia ini memastikan komunikasi antara SQL Server dan sumber data atau database lainnya.

Setelah menginstal Oracle, Anda dapat melihat bahwa Penyedia OLEDB telah dibuat di bawah Penyedia simpul SQL Server Management Studio.

Sebelum kita membuat server tertaut baru, kita harus mengaktifkan A proses lambat parameter.

Klik kanan pada OraOLEDB.Oracle dan klik Properti :

Di Opsi Penyedia layar, klik Izinkan proses . Klik Oke untuk menyimpan konfigurasi:

Untuk membuat server tertaut, buka SSMS dan sambungkan ke mesin basis data. Luaskan Objek Server> Server Tertaut> Server Tertaut Baru :

Di jendela konfigurasi, tentukan detail berikut:

  1. Server tertaut . Tentukan nama server yang ditautkan. Nama ini tidak boleh mengandung spasi atau karakter lain . Dalam kasus kami, nama server tertaut adalah ORACLESERVER .
  2. Jenis Server . Anda dapat memilih SQL Server atau sumber data lainnya. Dalam kasus kami, kami membuat server tertaut antara Oracle dan SQL Server. Oleh karena itu, pilih Data lain sumber .
  3. Penyedia . Pilih nama dari Penyedia menu drop down. Dalam kasus kami, ini adalah Oracle Penyedia untuk OLEDB .
  4. Sumber Data . Nama sumber data adalah nama Layanan dari instance Oracle . Dalam kasus kami, ini adalah karyawan .

Anda dapat melihat daftar layanan di bawah Penamaan Layanan dari Konfigurasi Oracle Net manajer> Penamaan Layanan> pilih nama layanan.

Sekarang, mari kita konfigurasikan pengaturan keamanan untuk terhubung ke server database Oracle:di Server Tertaut Baru jendela, buka Keamanan bagian.

Kami membuat koneksi menggunakan Login jarak jauh dan Kata Sandi. Untuk itu, pilih Jadikan menggunakan konteks keamanan ini dan tentukan kredensialnya:

Untuk menjalankan prosedur tersimpan jarak jauh, kita harus mengaktifkan RPC (panggilan prosedur jarak jauh) di server yang ditautkan.

Buka Opsi Server dan atur RPC nilai sebagai Benar :

Sekarang, klik Oke untuk membuat server tertaut. Setelah berhasil, Anda dapat melihatnya di bawah Server Tertaut simpul di SSMS:

Buat server tertaut menggunakan T-SQL

Anda dapat menjalankan skrip T-SQL untuk membuat server tertaut. Kemudian, untuk menambahkan server tertaut, Anda dapat menggunakan sp_addlinkedserver prosedur tersimpan. Untuk mengonfigurasi login untuk server tertaut, Anda dapat menggunakan sp_addlinkedsrvlogin prosedur tersimpan. Untuk mengatur parameter konfigurasi, Anda dapat menggunakan sp_serveroption prosedur tersimpan.

Dalam kasus kami, Anda harus menjalankan kode berikut untuk menambahkan server tertaut:

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

Jalankan kode berikut untuk mengonfigurasi keamanan server tertaut:

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

Kode berikut adalah untuk mengatur parameter konfigurasi:

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

Sekarang, mari kita uji konfigurasi dengan menanyakan data.

Uji konektivitas dengan menanyakan data

Untuk menguji konektivitas, luncurkan SQL Server Management Studio dan jalankan kueri berikut:

select * from [oracleserver]..NISARG.tblEmployee

Keluaran kueri:

Seperti yang Anda lihat, kueri telah berhasil dijalankan. Ini menunjukkan konfigurasi server tertaut yang berhasil.

Sekarang, mari kita buat prosedur tersimpan di SQL Server untuk mengakses data dari database Oracle dan menjalankan kueri Oracle SQL:

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

Jalankan perintah di bawah ini untuk menjalankan prosedur tersimpan:

Exec sp_view_employee

Keluaran kueri:

Mari kita jalankan prosedur tersimpan berparameter. Kodenya sebagai berikut:

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

Jalankan prosedurnya:

exec sp_view_employee 'Nisarg Upadhyay'

Keluaran kueri:

Ringkasan

Dengan cara ini, Anda dapat mengonfigurasi server Tertaut di Oracle vs SQL Server 2019. Kami telah menjelaskan prosesnya selangkah demi selangkah, dan kami berharap artikel ini akan membantu Anda dalam pekerjaan Anda.

Baca juga

Kesalahan Penggunaan Server Tertaut


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara melihat tipe variabel dalam PL/SQL?

  2. ORA-12505, TNS:pendengar saat ini tidak mengetahui SID yang diberikan di deskriptor koneksi

  3. Bagaimana cara menyimpan karakter tanpa batas di Oracle 11g?

  4. APPL_TOP bertahap di Oracle Applications R12

  5. Cara Memeriksa Nilai Parameter NLS di Oracle Database