oracle创建dblink
2016-04-07 11:05
483 查看
当用户要在本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。
下面讲介绍如何在本地数据库中创建dblink。
1.在sys用户下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK权限授予给你的用户
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;
2.登录scott用户,创建dblink
语法:
create public database link dblink名字
connect to 远程数据库登录用户名 identified by 远程数据库登录密码
using ‘远程数据库的实例名’;
a.本地数据库tnsnames.ora文件中有配置要访问的远程数据库
如:aaa =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = aaa)
)
)
则远程数据库的实例名可以直接填aaa即可。
如下:
create public database link A
connect to fhl identified by fhl
using ‘aaa’;
b.如果本地数据库tnsnames.ora文件中没有配置要访问的远程数据库
则创建dblink时,可以直接将a中aaa = 后面的内容直接写在远程数据库的实例名的地方。
如下:
create public database link A
connect to fhl identified by fhl
using ‘(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = aaa)
)
)’;
3.就可以直接查询fhl数据库中的表了,但是必须在表名后面加上@A
SELECT * FROM 表名@A
如果觉得这样很麻烦,可以创建 【表名@A】 的同义词,即取别名
create or replace synonym a for 表名@A;
执行时发现出错ORA-01031:权限不足
再次用sys dba用户登录给scott用户赋予创建同义词的权限
grant CREATE SYNONYM to scott;
再次用scott登录执行创建同义词语句,成功!
下面讲介绍如何在本地数据库中创建dblink。
1.在sys用户下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK权限授予给你的用户
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;
2.登录scott用户,创建dblink
语法:
create public database link dblink名字
connect to 远程数据库登录用户名 identified by 远程数据库登录密码
using ‘远程数据库的实例名’;
a.本地数据库tnsnames.ora文件中有配置要访问的远程数据库
如:aaa =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = aaa)
)
)
则远程数据库的实例名可以直接填aaa即可。
如下:
create public database link A
connect to fhl identified by fhl
using ‘aaa’;
b.如果本地数据库tnsnames.ora文件中没有配置要访问的远程数据库
则创建dblink时,可以直接将a中aaa = 后面的内容直接写在远程数据库的实例名的地方。
如下:
create public database link A
connect to fhl identified by fhl
using ‘(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = aaa)
)
)’;
3.就可以直接查询fhl数据库中的表了,但是必须在表名后面加上@A
SELECT * FROM 表名@A
如果觉得这样很麻烦,可以创建 【表名@A】 的同义词,即取别名
create or replace synonym a for 表名@A;
执行时发现出错ORA-01031:权限不足
再次用sys dba用户登录给scott用户赋予创建同义词的权限
grant CREATE SYNONYM to scott;
再次用scott登录执行创建同义词语句,成功!
相关文章推荐
- Oracle 追踪回话SQL几种方法
- ORACLE
- rman target sys/oracle@PROD1 auxiliary sys/oracle@PROD2
- 42、Oracle 11g服务器安装详细步骤——图文教程
- 41、PL/SQL连接Oracle 11g配置使用成功(64位Oracle使用PL/SQL)
- 40、Oracle database 11g 在windows xp下的安装步骤
- ORACLE查询当前连接的用户信息及操作的SQL语句
- Oracle计算时间差函数
- Oracle密码过期the password has expired解决办法
- VS2008 IDE连接 ORACLE后新建查询 无响应或者长时间等待
- Oracle学习笔记【02】:单行函数
- oracle序列详解
- oracle扩充表空间
- Oracle SQL收集
- Oracle反向字符截取逗號分隔字符串
- oracle 角色 、权限、用户的相关知识
- oracle物理dg角色转换
- Oracle 表检查有什么功能
- 对于Oracle 外部表需要了解哪些知识点
- Navicat for Oracle如何连接数据库