oracle跨库连接查询

一、授权(本地客户器端授权当前用户)

grant create database link to szfile

 

第一种连接方法:配置本地数据库服务器的tnsnames.ora文件 

复制代码
SZFILE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 80))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = szfile)
    )
  )
复制代码

第二种方法:创建dblink

方法一:通过编写SQL语句

复制代码
-- Drop existing database link 
drop database link ERP;
-- Create database link 
create database link ERP
  connect to KTC
  using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 80))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = test)
    )
  )';
复制代码

 

也可以为这个表创建一个同义词 

  

  create synonym aaa for table_name@MEDIADB ; 

 

  如下语句的效果和3.1中的一样 

 

  select * from aaa; 

 

  删除同义词的语句为 

 

  drop synonym aaa; 

方法二:手动添加

1、Oracle对象集中找到Database Link

2、新建

3、填写配置信息

 

注:

所有者:选择当前数据库

名称:按需求命名

连接到(目标数据库):输入用户名、口令和连接字符串

鉴定者一栏可不填

公共那块可以选择为公共连接

4、删除dblink

Drop database link SZFILE;

5、跨库连接实例

1.select * from usr_mstr@szfile
/* 注:blog、clob无法直接通过远程连接获取,当表中存在这两个类型的字段时,应避开这两个大数据类型的字段 */

2. 在当前数据库下查看所有的DBLINK的方法:

     1. select * from dba_db_links;     

3. 删除当前数据库下的一个指定的DBLINK的方法:

     1. 如果创建的是一个public的DBLINK,删除时需要用

        drop public database link dblink;

     2. 如果创建的是一个private的DBLINK,删除时需要用

        drop database link dblink;

     说明:drop public database link DBLINK名字;     

4. 查看当前数据库的全局数据库名的方法:

     1. select * from global_name;   

5. 查看当前用户具有哪些针对DBLINK的权限的方法:

     1. SELECT DISTINCT PRIVILEGE AS "Database Link Privileges"

        FROM ROLE_SYS_PRIVS

        WHERE PRIVILEGE IN ( 'CREATE SESSION','CREATE DATABASE LINK',

                             'CREATE PUBLIC DATABASE LINK');    

posted @ 2018-04-13 09:37  潇湘灬隐者  阅读(1735)  评论(0编辑  收藏  举报