• Oracle dblink 跨库查询详解


    Step1: 创建DBLINK之前需要查看当前用户的权限。需要使用sysdba 登录,并查询权限。

    1. [oracle@oracle-db-19c ~]$
    2. [oracle@oracle-db-19c ~]$ su - oracle
    3. Password:
    4. [oracle@oracle-db-19c ~]$ sqlplus / as sysdba
    5. SQL*Plus: Release 19.0.0.0.0 - Production on Fri Nov 18 13:44:55 2022
    6. Version 19.3.0.0.0
    7. Copyright (c) 1982, 2019, Oracle. All rights reserved.
    8. Connected to:
    9. Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    10. Version 19.3.0.0.0
    11. SQL> set pagesize 200
    12. SQL> set linesize 200
    13. SQL> alter session set container=PDB1;
    14. Session altered.
    15. SQL> show user
    16. USER is "SYS"
    17. SQL> show con_name
    18. CON_NAME
    19. ------------------------------
    20. PDB1
    21. SQL> select * from user_sys_privs t where t.privilege like upper('%link%');
    22. USERNAME PRIVILEGE ADM COM INH
    23. -------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------- --- --- ---
    24. SYS DROP PUBLIC DATABASE LINK NO YES YES
    25. SYS CREATE PUBLIC DATABASE LINK NO YES YES
    26. SYS CREATE DATABASE LINK NO YES YES
    27. SQL>

    根据上述查询结果显示数据库中dblink拥有三种权限:

    CREATE DATABASE LINK--所创建的dblink只有自己可用,其他用户无法使用。
    CREATE PUBLIC DATABASE LINK--public表示所创建的dblink所有用户均可使用
    DROP PUBLIC DATABASE LINK--删除指定dblink

    Step2 给SCOTT账号授予创建dblink和删除dblink的权限(必须在sys用户下授权)

    1. SQL> show user;
    2. USER is "SYS"
    3. SQL>
    4. SQL> grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;
    5. Grant succeeded.
    6. SQL>

    Step3 查看 scott 是否已经拥有dblink的相关权限

    1. SQL> show user;
    2. USER is "SCOTT"
    3. SQL> select * from session_privs;
    4. PRIVILEGE
    5. ----------------------------------------
    6. CREATE SESSION
    7. UNLIMITED TABLESPACE
    8. CREATE TABLE
    9. CREATE CLUSTER
    10. CREATE VIEW
    11. CREATE SEQUENCE
    12. CREATE PUBLIC DATABASE LINK
    13. DROP PUBLIC DATABASE LINK
    14. CREATE PROCEDURE
    15. CREATE TRIGGER
    16. CREATE TYPE
    17. CREATE OPERATOR
    18. CREATE INDEXTYPE
    19. SET CONTAINER
    20. 14 rows selected.
    21. SQL>

    Step4 查看dblink的两种方式:

    1. SQL> column owner for a40
    2. SQL> column object_name for a40
    3. SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
    4. OWNER OBJECT_NAME
    5. ---------------------------------------- ----------------------------------------
    6. SYS SYS_HUB
    7. SQL> COLUMN owner FORMAT A30
    8. SQL> COLUMN db_link FORMAT A30
    9. SQL> COLUMN username FORMAT A30
    10. SQL> COLUMN host FORMAT A30
    11. SQL> SELECT owner,
    12. 2 db_link,
    13. 3 username,
    14. 4 host
    15. 5 FROM dba_db_links
    16. 6 ORDER BY owner, db_link;
    17. OWNER DB_LINK USERNAME HOST
    18. ------------------------------ ------------------------------ ------------------------------ ------------------------------
    19. SYS SYS_HUB SEEDDATA
    20. SQL>
    21. SQL>
    22. SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
    23. OWNER OBJECT_NAME
    24. ------------------------------ ----------------------------------------
    25. SYS SYS_HUB
    26. SQL>

    Step5.创建dblink

    1. SQL>
    2. SQL> show user
    3. USER is "SCOTT"
    4. SQL>
    5. SQL> create public database link LINK_ORCLPDB1
    6. 2 connect to hr identified by "hr"
    7. 3 using
    8. 4 '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ORCLPDB1)))';
    9. Database link created.
    10. SQL>

    Step6.核查dblink是否建立成功。

    1. SQL>
    2. SQL>
    3. SQL> show user;
    4. USER is "SYS"
    5. SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
    6. OWNER OBJECT_NAME
    7. ------------------------------ ----------------------------------------
    8. SYS SYS_HUB
    9. PUBLIC LINK_ORCLPDB1
    10. SQL>
    11. SQL>
    12. SQL> COLUMN owner FORMAT A30
    13. SQL> COLUMN db_link FORMAT A30
    14. SQL> COLUMN username FORMAT A30
    15. SQL> COLUMN host FORMAT A30
    16. SQL> SELECT owner,
    17. 2 db_link,
    18. 3 username,
    19. 4 host
    20. 5 FROM dba_db_links
    21. 6 ORDER BY owner, db_link;
    22. OWNER DB_LINK USERNAME HOST
    23. ------------------------------ ------------------------------ ------------------------------ ------------------------------
    24. PUBLIC LINK_ORCLPDB1 HR (DESCRIPTION =(ADDRESS = (PROT
    25. OCOL = TCP)(HOST = xxx.xxx.xxx
    26. .xxx)(PORT = 1521))(CONNECT_DA
    27. TA =(SERVER = DEDICATED)(SERVI
    28. CE_NAME = ORCLPDB1)))
    29. SYS SYS_HUB SEEDDATA
    30. SQL>

    Step7 使用dblink跨库访问hr schema中的表中数据

    1. SQL> set pagesize 200
    2. SQL> set linesize 200
    3. SQL> select * from hr.employees@LINK_ORCLPDB1;
    4. EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID
    5. ----------- -------------------- ------------------------- ------------------------- -------------------- --------- ---------- ---------- -------------- ---------- -------------
    6. 198 Donald OConnell DOCONNEL 650.507.9833 21-JUN-07 SH_CLERK 2600 124 50
    7. 199 Douglas Grant DGRANT 650.507.9844 13-JAN-08 SH_CLERK 2600 124 50
    8. 200 Jennifer Whalen JWHALEN 515.123.4444 17-SEP-03 AD_ASST 4400 101 10
    9. 201 Michael Hartstein MHARTSTE 515.123.5555 17-FEB-04 MK_MAN 13000 100 20
    10. 202 Pat Fay PFAY 603.123.6666 17-AUG-05 MK_REP 6000 201 20
    11. 203 Susan Mavris SMAVRIS 515.123.7777 07-JUN-02 HR_REP 6500 101 40
    12. 204 Hermann Baer HBAER 515.123.8888 07-JUN-02 PR_REP 10000 101 70
    13. 205 Shelley Higgins SHIGGINS 515.123.8080 07-JUN-02 AC_MGR 12008 101 110
    14. 206 William Gietz WGIETZ 515.123.8181 07-JUN-02 AC_ACCOUNT 8300 205 110
    15. 100 Steven King SKING 515.123.4567 17-JUN-03 AD_PRES 24000 90
    16. 101 Neena Kochhar NKOCHHAR 515.123.4568 21-SEP-05 AD_VP 17000 100 90
    17. 102 Lex De Haan LDEHAAN 515.123.4569 13-JAN-01 AD_VP 17000 100 90
    18. 103 Alexander Hunold AHUNOLD 590.423.4567 03-JAN-06 IT_PROG 9000 102 60
    19. 104 Bruce Ernst BERNST 590.423.4568 21-MAY-07 IT_PROG 6000 103 60
    20. 105 David Austin DAUSTIN 590.423.4569 25-JUN-05 IT_PROG 4800 103 60
    21. 106 Valli Pataballa VPATABAL 590.423.4560 05-FEB-06 IT_PROG 4800 103 60
    22. 107 Diana Lorentz DLORENTZ 590.423.5567 07-FEB-07 IT_PROG 4200 103 60
    23. 108 Nancy Greenberg NGREENBE 515.124.4569 17-AUG-02 FI_MGR 12008 101 100
    24. 109 Daniel Faviet DFAVIET 515.124.4169 16-AUG-02 FI_ACCOUNT 9000 108 100
    25. 110 John Chen JCHEN 515.124.4269 28-SEP-05 FI_ACCOUNT 8200 108 100
    26. 111 Ismael Sciarra ISCIARRA 515.124.4369 30-SEP-05 FI_ACCOUNT 7700 108 100
    27. 112 Jose Manuel Urman JMURMAN 515.124.4469 07-MAR-06 FI_ACCOUNT 7800 108 100
    28. 113 Luis Popp LPOPP 515.124.4567 07-DEC-07 FI_ACCOUNT 6900 108 100
    29. 114 Den Raphaely DRAPHEAL 515.127.4561 07-DEC-02 PU_MAN 11000 100 30
    30. 115 Alexander Khoo AKHOO 515.127.4562 18-MAY-03 PU_CLERK 3100 114 30
    31. 116 Shelli Baida SBAIDA 515.127.4563 24-DEC-05 PU_CLERK 2900 114 30
    32. 117 Sigal Tobias STOBIAS 515.127.4564 24-JUL-05 PU_CLERK 2800 114 30
    33. 118 Guy Himuro GHIMURO 515.127.4565 15-NOV-06 PU_CLERK 2600 114 30
    34. 119 Karen Colmenares KCOLMENA 515.127.4566 10-AUG-07 PU_CLERK 2500 114 30
    35. 120 Matthew Weiss MWEISS 650.123.1234 18-JUL-04 ST_MAN 8000 100 50
    36. 121 Adam Fripp AFRIPP 650.123.2234 10-APR-05 ST_MAN 8200 100 50
    37. 122 Payam Kaufling PKAUFLIN 650.123.3234 01-MAY-03 ST_MAN 7900 100 50
    38. 123 Shanta Vollman SVOLLMAN 650.123.4234 10-OCT-05 ST_MAN 6500 100 50
    39. 124 Kevin Mourgos KMOURGOS 650.123.5234 16-NOV-07 ST_MAN 5800 100 50
    40. 125 Julia Nayer JNAYER 650.124.1214 16-JUL-05 ST_CLERK 3200 120 50
    41. 126 Irene Mikkilineni IMIKKILI 650.124.1224 28-SEP-06 ST_CLERK 2700 120 50
    42. 127 James Landry JLANDRY 650.124.1334 14-JAN-07 ST_CLERK 2400 120 50
    43. 128 Steven Markle SMARKLE 650.124.1434 08-MAR-08 ST_CLERK 2200 120 50
    44. 129 Laura Bissot LBISSOT 650.124.5234 20-AUG-05 ST_CLERK 3300 121 50
    45. 130 Mozhe Atkinson MATKINSO 650.124.6234 30-OCT-05 ST_CLERK 2800 121 50
    46. 131 James Marlow JAMRLOW 650.124.7234 16-FEB-05 ST_CLERK 2500 121 50
    47. 132 TJ Olson TJOLSON 650.124.8234 10-APR-07 ST_CLERK 2100 121 50
    48. 133 Jason Mallin JMALLIN 650.127.1934 14-JUN-04 ST_CLERK 3300 122 50
    49. 134 Michael Rogers MROGERS 650.127.1834 26-AUG-06 ST_CLERK 2900 122 50
    50. 135 Ki Gee KGEE 650.127.1734 12-DEC-07 ST_CLERK 2400 122 50
    51. 136 Hazel Philtanker HPHILTAN 650.127.1634 06-FEB-08 ST_CLERK 2200 122 50
    52. 137 Renske Ladwig RLADWIG 650.121.1234 14-JUL-03 ST_CLERK 3600 123 50
    53. 138 Stephen Stiles SSTILES 650.121.2034 26-OCT-05 ST_CLERK 3200 123 50
    54. 139 John Seo JSEO 650.121.2019 12-FEB-06 ST_CLERK 2700 123 50
    55. 140 Joshua Patel JPATEL 650.121.1834 06-APR-06 ST_CLERK 2500 123 50
    56. 141 Trenna Rajs TRAJS 650.121.8009 17-OCT-03 ST_CLERK 3500 124 50
    57. 142 Curtis Davies CDAVIES 650.121.2994 29-JAN-05 ST_CLERK 3100 124 50
    58. 143 Randall Matos RMATOS 650.121.2874 15-MAR-06 ST_CLERK 2600 124 50
    59. 144 Peter Vargas PVARGAS 650.121.2004 09-JUL-06 ST_CLERK 2500 124 50
    60. 145 John Russell JRUSSEL 011.44.1344.429268 01-OCT-04 SA_MAN 14000 .4 100 80
    61. 146 Karen Partners KPARTNER 011.44.1344.467268 05-JAN-05 SA_MAN 13500 .3 100 80
    62. 147 Alberto Errazuriz AERRAZUR 011.44.1344.429278 10-MAR-05 SA_MAN 12000 .3 100 80
    63. 148 Gerald Cambrault GCAMBRAU 011.44.1344.619268 15-OCT-07 SA_MAN 11000 .3 100 80
    64. 149 Eleni Zlotkey EZLOTKEY 011.44.1344.429018 29-JAN-08 SA_MAN 10500 .2 100 80
    65. 150 Peter Tucker PTUCKER 011.44.1344.129268 30-JAN-05 SA_REP 10000 .3 145 80
    66. 151 David Bernstein DBERNSTE 011.44.1344.345268 24-MAR-05 SA_REP 9500 .25 145 80
    67. 152 Peter Hall PHALL 011.44.1344.478968 20-AUG-05 SA_REP 9000 .25 145 80
    68. 153 Christopher Olsen COLSEN 011.44.1344.498718 30-MAR-06 SA_REP 8000 .2 145 80
    69. 154 Nanette Cambrault NCAMBRAU 011.44.1344.987668 09-DEC-06 SA_REP 7500 .2 145 80
    70. 155 Oliver Tuvault OTUVAULT 011.44.1344.486508 23-NOV-07 SA_REP 7000 .15 145 80
    71. 156 Janette King JKING 011.44.1345.429268 30-JAN-04 SA_REP 10000 .35 146 80
    72. 157 Patrick Sully PSULLY 011.44.1345.929268 04-MAR-04 SA_REP 9500 .35 146 80
    73. 158 Allan McEwen AMCEWEN 011.44.1345.829268 01-AUG-04 SA_REP 9000 .35 146 80
    74. 159 Lindsey Smith LSMITH 011.44.1345.729268 10-MAR-05 SA_REP 8000 .3 146 80
    75. 160 Louise Doran LDORAN 011.44.1345.629268 15-DEC-05 SA_REP 7500 .3 146 80
    76. 161 Sarath Sewall SSEWALL 011.44.1345.529268 03-NOV-06 SA_REP 7000 .25 146 80
    77. 162 Clara Vishney CVISHNEY 011.44.1346.129268 11-NOV-05 SA_REP 10500 .25 147 80
    78. 163 Danielle Greene DGREENE 011.44.1346.229268 19-MAR-07 SA_REP 9500 .15 147 80
    79. 164 Mattea Marvins MMARVINS 011.44.1346.329268 24-JAN-08 SA_REP 7200 .1 147 80
    80. 165 David Lee DLEE 011.44.1346.529268 23-FEB-08 SA_REP 6800 .1 147 80
    81. 166 Sundar Ande SANDE 011.44.1346.629268 24-MAR-08 SA_REP 6400 .1 147 80
    82. 167 Amit Banda ABANDA 011.44.1346.729268 21-APR-08 SA_REP 6200 .1 147 80
    83. 168 Lisa Ozer LOZER 011.44.1343.929268 11-MAR-05 SA_REP 11500 .25 148 80
    84. 169 Harrison Bloom HBLOOM 011.44.1343.829268 23-MAR-06 SA_REP 10000 .2 148 80
    85. 170 Tayler Fox TFOX 011.44.1343.729268 24-JAN-06 SA_REP 9600 .2 148 80
    86. 171 William Smith WSMITH 011.44.1343.629268 23-FEB-07 SA_REP 7400 .15 148 80
    87. 172 Elizabeth Bates EBATES 011.44.1343.529268 24-MAR-07 SA_REP 7300 .15 148 80
    88. 173 Sundita Kumar SKUMAR 011.44.1343.329268 21-APR-08 SA_REP 6100 .1 148 80
    89. 174 Ellen Abel EABEL 011.44.1644.429267 11-MAY-04 SA_REP 11000 .3 149 80
    90. 175 Alyssa Hutton AHUTTON 011.44.1644.429266 19-MAR-05 SA_REP 8800 .25 149 80
    91. 176 Jonathon Taylor JTAYLOR 011.44.1644.429265 24-MAR-06 SA_REP 8600 .2 149 80
    92. 177 Jack Livingston JLIVINGS 011.44.1644.429264 23-APR-06 SA_REP 8400 .2 149 80
    93. 178 Kimberely Grant KGRANT 011.44.1644.429263 24-MAY-07 SA_REP 7000 .15 149
    94. 179 Charles Johnson CJOHNSON 011.44.1644.429262 04-JAN-08 SA_REP 6200 .1 149 80
    95. 180 Winston Taylor WTAYLOR 650.507.9876 24-JAN-06 SH_CLERK 3200 120 50
    96. 181 Jean Fleaur JFLEAUR 650.507.9877 23-FEB-06 SH_CLERK 3100 120 50
    97. 182 Martha Sullivan MSULLIVA 650.507.9878 21-JUN-07 SH_CLERK 2500 120 50
    98. 183 Girard Geoni GGEONI 650.507.9879 03-FEB-08 SH_CLERK 2800 120 50
    99. 184 Nandita Sarchand NSARCHAN 650.509.1876 27-JAN-04 SH_CLERK 4200 121 50
    100. 185 Alexis Bull ABULL 650.509.2876 20-FEB-05 SH_CLERK 4100 121 50
    101. 186 Julia Dellinger JDELLING 650.509.3876 24-JUN-06 SH_CLERK 3400 121 50
    102. 187 Anthony Cabrio ACABRIO 650.509.4876 07-FEB-07 SH_CLERK 3000 121 50
    103. 188 Kelly Chung KCHUNG 650.505.1876 14-JUN-05 SH_CLERK 3800 122 50
    104. 189 Jennifer Dilly JDILLY 650.505.2876 13-AUG-05 SH_CLERK 3600 122 50
    105. 190 Timothy Gates TGATES 650.505.3876 11-JUL-06 SH_CLERK 2900 122 50
    106. 191 Randall Perkins RPERKINS 650.505.4876 19-DEC-07 SH_CLERK 2500 122 50
    107. 192 Sarah Bell SBELL 650.501.1876 04-FEB-04 SH_CLERK 4000 123 50
    108. 193 Britney Everett BEVERETT 650.501.2876 03-MAR-05 SH_CLERK 3900 123 50
    109. 194 Samuel McCain SMCCAIN 650.501.3876 01-JUL-06 SH_CLERK 3200 123 50
    110. 195 Vance Jones VJONES 650.501.4876 17-MAR-07 SH_CLERK 2800 123 50
    111. 196 Alana Walsh AWALSH 650.507.9811 24-APR-06 SH_CLERK 3100 124 50
    112. 197 Kevin Feeney KFEENEY 650.507.9822 23-MAY-06 SH_CLERK 3000 124 50
    113. 107 rows selected.
    114. SQL>

    Step 8 : 删除dblink

    1. SQL>
    2. SQL> show user;
    3. USER is "SCOTT"
    4. SQL> drop public database link LINK_ORCLPDB1;
    5. Database link dropped.
    6. SQL>

    Step 9 : 核查 dblink  LINK_ORCLPDB1 已删除。

    1. SQL>
    2. SQL> show user
    3. USER is "SYS"
    4. SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
    5. OWNER OBJECT_NAME
    6. ------------------------------ ----------------------------------------
    7. SYS SYS_HUB
    8. SQL>
  • 相关阅读:
    大模型浪潮席卷!和鲸科技入选创业邦“2023值得关注的125家AIGC企业”榜单
    FL Studio21.2破解版更新下载
    Vue源码学习(六):(支线)渲染函数中with(),call()的使用以及一些思考
    【QT】Qt Application Manager启动应用源码分析
    java计算机毕业设计交通非现场执法系统源码+mysql数据库+系统+lw文档+部署
    前端也该刷点算法题——双指针解“链表”题也太香了叭!
    Cube.js 试试这个新的数据分析开源工具
    1.8 信息系统服务管理、1.9 信息系统规划
    Java 可重入锁的那些事(一)
    【Linux】 df命令使用
  • 原文地址:https://blog.csdn.net/u011868279/article/details/127921016