全部產品
Search
文件中心

PolarDB:CREATE [PUBLIC] DATABASE LINK

更新時間:Jul 06, 2024

CREATE [PUBLIC] DATABASE LINK建立一個資料庫連接。

文法

------串連到PolarDB PostgreSQL版(相容Oracle)
CREATE [ PUBLIC ] DATABASE LINK <name>
   CONNECT TO <username> IDENTIFIED BY "<password>"
  USING ( channel_name '<channel_name>', dbname '<db_name>' );

------串連到Oracle
CREATE [ PUBLIC ] DATABASE LINK <name>
   CONNECT TO <username> IDENTIFIED BY "<password>"
  USING '//<channel_name>/<dbname>';

參數說明

參數

說明

PUBLIC

建立任何使用者都可以使用的公用資料庫連接。如果省略此參數,則建立私人資料庫連接,只有資料庫連接的所有者可以使用。

name

資料庫連接的名稱。

username

用於串連到遠端資料庫的使用者名稱。

password

用於串連到遠端資料庫的密碼。

注意事項

  • CREATE DATABASE LINK建立的資料庫連接是一個對象,允許在DELETE、INSERT、SELECT或UPDATE命令中引用遠端資料庫中的表或視圖。

  • 資料庫連接可以是公用的或私人的。公用資料庫連接是任何使用者都可以使用的串連。私人資料庫連接只有資料庫連接的所有者才能使用。指定PUBLIC選項來建立公用資料庫連接,否則,將建立私人資料庫連接。

  • 建立資料庫連接之後,可以通過 DBA_DB_LINKS/ALL_DB_LINKS/USER_DB_LINKS 視圖查看所有已經建立的資料庫連接。

樣本

重要

如果建立過程中提示 oracle_fdw/postgres_fdw 外掛程式不存在,請通過 CREATE EXTENSION 命令建立。

建立oracle_fdw資料庫連接。

CREATE DATABASE LINK ora_dblink
  CONNECT TO admin IDENTIFIED BY 'mypassword'
  USING '//orachannel/acctg';

建立postgres_fdw資料庫連接。

CREATE DATABASE LINK pg_dblink
  CONNECT TO admin IDENTIFIED BY "mypassword"
  USING (channel_name 'localhost', dbname 'marketing'); 

使用資料庫連接。

SELECT * FROM emp@ora_link;

結果顯示如下:

empno | ename  |    job    | mgr  |      hiredate      | sal  | comm | deptno
-------+--------+-----------+------+--------------------+------+------+--------
  7369 | SMITH  | CLERK     | 7902 | 17-DEC-80 00:00:00 |  800 |      |     20
  7499 | ALLEN  | SALESMAN  | 7698 | 20-FEB-81 00:00:00 | 1600 |  300 |     30
  7521 | WARD   | SALESMAN  | 7698 | 22-FEB-81 00:00:00 | 1250 |  500 |     30
  7566 | JONES  | MANAGER   | 7839 | 02-APR-81 00:00:00 | 2975 |      |     20
(4 rows)

使用資料庫連接。

SELECT d.deptno, d.dname, e.empno, e.ename, e.job, e.sal, e.comm FROM
emp@ora_link e, dept@fdwlink d WHERE e.deptno = d.deptno ORDER BY 1, 3;

結果顯示如下:

deptno |   dname    | empno | ename  |    job    | sal  | comm
--------+------------+-------+--------+-----------+------+------
     10 | ACCOUNTING |  7782 | CLARK  | MANAGER   | 2450 |
     10 | ACCOUNTING |  7839 | KING   | PRESIDENT | 5000 |
     10 | ACCOUNTING |  7934 | MILLER | CLERK     | 1300 |
     20 | RESEARCH   |  7369 | SMITH  | CLERK     |  800 |
     20 | RESEARCH   |  7566 | JONES  | MANAGER   | 2975 |
     20 | RESEARCH   |  7788 | SCOTT  | ANALYST   | 3000 |
     20 | RESEARCH   |  7876 | ADAMS  | CLERK     | 1100 |
     20 | RESEARCH   |  7902 | FORD   | ANALYST   | 3000 |
     30 | SALES      |  7499 | ALLEN  | SALESMAN  | 1600 |  300
     30 | SALES      |  7521 | WARD   | SALESMAN  | 1250 |  500
     30 | SALES      |  7654 | MARTIN | SALESMAN  | 1250 | 1400
     30 | SALES      |  7698 | BLAKE  | MANAGER   | 2850 |
     30 | SALES      |  7844 | TURNER | SALESMAN  | 1500 |    0
     30 | SALES      |  7900 | JAMES  | CLERK     |  950 |
(14 rows)