oracle跨库连接查询

时间:2021-12-16 08:13:59

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

grant create database link to szfile

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

oracle跨库连接查询
SZFILE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 80))
)
(CONNECT_DATA =
(SERVICE_NAME = szfile)
)
)
oracle跨库连接查询

第二种方法:创建dblink

方法一:通过编写SQL语句

oracle跨库连接查询
-- 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)
)
)';
oracle跨库连接查询

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

create synonym aaa for table_name@MEDIADB ;

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

select * from aaa;

删除同义词的语句为

drop synonym aaa;

方法二:手动添加

1、Oracle对象集中找到Database Link

oracle跨库连接查询

2、新建

oracle跨库连接查询

3、填写配置信息

oracle跨库连接查询

注:

所有者:选择当前数据库

名称:按需求命名

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

鉴定者一栏可不填

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

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');