zoukankan      html  css  js  c++  java
  • oracle在进行跨库访问时,采用dblink实现

     首先了解下环境:在tnsnames.ora中配置两个数据库别名:test1/test1@11orcl1、tets2/tets2@12orlc2,在orcl1中创建database link来访问orcl2

    #测试数据库1
    11orcl1 =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = orcl)
    )
    )


    #测试数据库2
    12orcl2 =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.12)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = orcl)
    )
    )

     第一步:赋予权限
             在创建database link之前,我们需要判断,登陆的用户是否具备创建database link 的权限,所以我们执行以下的语句(用test1用户登陆11orcl1):

    -- 查看test1用户是否具备创建database link 权限
    select
    * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='test1';

            如果查询有返回行,则表示具备创建database link权限,否则,则需要使用sys登陆orcl为test1用户赋予创建权限

    -- 给wangyong用户授予创建dblink的权限 
    grant create public database link to test1;

             此时,再执行上面查看是否具备权限的sql语句,会发现有返回行,表示,test1这个用户已经具备创建database link的权限
     
     第二步;创建database link
             我所了解到的创建方式有两种:1)通过pl/sql developer图形化创建、2)通过sqlplus中的sql语句创建,依次来看
             1)pl/sql developer 图形化创建

        

       2)sql语句创建

    -- 注意一点,如果密码是数字开头,用“”括起来 
    create public database link TESTLINK2 connect to test2 identified by "test2" USING '12ORCL2'

     这样,就完成了简单database简单的创。 

    SELECT * FROM TESTSYNONYM@TESTLINK2 order by id

     至此,简单的dblink操作就可以了,对于上面的链接字符串,还可以创建同义词代替,会稍微省点事

    -- 创建同义词
    create synonym TESTSYNONYM FOR company@TESTLINK2;

         那么上面的查询、插入、修改、删除中可直接用WYSYNONYM代替company@TESTLINK1即可,例如查询语句可改成如下方式(插入,修改,删除类似):

    -- 查询12ORCL2中test2用户的表COMPANY 
    SELECT * FROM TESTSYNONYM order by id
  • 相关阅读:
    「CF722E Research Rover」
    「Luogu P4062 [Code+#1]Yazid 的新生舞会」
    【cf比赛记录】Codeforces Round #613 (Div. 2)
    【cf比赛记录】Educational Codeforces Round 78 (Rated for Div. 2)
    【cf补题记录】Codeforces Round #608 (Div. 2)
    【cf补题记录】Codeforces Round #607 (Div. 2)
    【cf比赛记录】Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4)
    【cf比赛记录】Codeforces Round #605 (Div. 3)
    【Codeforces】B. Div Times Mod
    【牛客练习赛53】A-超越学姐爱字符串
  • 原文地址:https://www.cnblogs.com/shangshen/p/10657052.html
Copyright © 2011-2022 走看看