zoukankan      html  css  js  c++  java
  • Oracle dblink的简应用

    1.查看DBLINK

    SELECT * FROM DBA_DB_LINKS;
    或:
    SELECT OWNER,OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_TYPE='DATABASE LINK';
    或:
    SELECT * FROM ALL_DB_LINKS;
    

    2.创建DBLINK
    前提:
    创建DBLINK的用户有对应的数据库权限

    CREATE PUBLIC DATABASE LINK 
    或:
    CREATE DATABASE LINK 
    

    授权:

    GRANT CREATE PUBLIC DATABASE LINK,CREATE DATABASE LINK TO MYACCOUNT;
    

    创建DBLINK:

    CREATE PUBLIC DATABASE LINK DBLINKNAME CONNECT TO USERNAME IDENTIFIED BY PASSWORD
       USING '(DESCRIPTION =
    			(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = DATABASE_IP)(PORT = 1521)))
    			(CONNECT_DATA = (SERVICE_NAME =SERVICENAME))
    			)';
    

    如果在CREATE之后不加PUBLIC,则创建的DBLINK就不是公共的,就只有创建者可以使用了.
    如果创建全局 DBLINK,必须使用 SYSTM 或 SYS 用户,在 DATABASE 前加 PUBLIC。

    ORACLE创建DBLINK报错:ORA-01017、ORA-02063解决:
    根据ORA-01017的提示是连接到另一方的用户密码错误,当9I或10G的版本的ORACLE数据库连接11G的版本时,
    会自动将密码转化为大写,密码最好用双引号引起来,否则可能在连接的时候报错

    补充:如何确定数据库的SERVICENAME:
    1.在SQLPLUS中使用

      SHOW PARAMETER[S] SERVICE_NAMES;
    

    注意PARAMETER和PARAMETERS都可以
    2.使用

    SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME='SERVICE_NAMES'
    

    3.使用DB LINK

    例如,在本机数据库上创建了一个SCOTT_RMTHOST的PUBLICDBLINK(使用远程主机的SCOTT用户连接),
    则用SQLPLUS连接到本机数据库,执行SELECT * FROMSCOTT.EMP@SCOTT_RMTHOT即可以将远程数据库上
    的SCOTT用户下的EMP表中的数据获取到.也可以在本地建一个同义词来指向SCOTT.EMP@SCOTT_RMTHOST,这样取值就方便多了.

    -- 最简单的用法
    SELECT * FROM TABLE_NAME@DATABASE_LINK;
    -- 不想让别人知道DATABASE LINK名字的时候,可以使用同义词包装一下
    CREATE SYNONYM TABLE_NAME FOR TABLE_NAME@DATABASE_LINK;
    SELECT * FROM TABLE_NAME;
    -- 也可以建立一个视图来封装
    CREATE VIEW TABLE_NAME_V AS SELECT * FROM TABLE_NAME@DATABASE_LINK;
    

    4.删除
    注意:用户有CREATEPUBLIC DATABASE LINK 或者CREATE DATABASE LINK 权限.

    -- 删除PUBLIC类型的DBLINK
    DROP PUBLIC DATABASE LINK DBLINK_NAME;
    -- 删除PRIVATE类型的DBLINK,只有创建者自己能删
    DROP DATABASE LINK DBLINK_NAME; 
    
  • 相关阅读:
    配置gem5-gpu模拟环境
    如何避免并发情况下的重复提交
    避免重复执行
    java线程池
    java动态代理
    Java 静态代理
    Java 静态代理和动态代理
    Spring的事务传播性
    mybatis配置(Configuration.xml)详解
    mybati之parameterType传递多个参数
  • 原文地址:https://www.cnblogs.com/lllini/p/11955186.html
Copyright © 2011-2022 走看看