Synonym和DBLink

Synonym 同义词:
建立同义词,为了使有关分布式操作更透明,ORACLE数据库里有同义词的对象synonym

1、创建同义词

create public synonym table_name for user.table_name;

2、删除同义词

drop public synonym table_name;

3、查看所有同义词

select * from dba_synonyms;

--------------------------------------------------

Oracle DB Link:
引用

1.基本概念:
数据库连接串主要用于建立对远程数据库的访问方法,可以直接读取远程Oracle的数据,或者直接修改。数据库连接串可以是公用连接PUBLIC或者私有连接PRIVATE。这一点和同义词很相像。
创建语法:
Java代码 复制代码   收藏代码
  1. CREATE DATABASE LINK TEST CONNECT TO USERNAME IDENTIFIED BY PASSWORD    
  2. USING 'CONNECT_STRING';  
解释:TEST是数据库连接串的名字。以后就通过这个名字来进行调用远程数据库的内容。
USERNAME是用来连接到远程数据库的合法Oracle用户名。PASSWORD为该用户连接到Oracle时候的合法密码。
CONNECT_STRING为该Oracle数据库所在的主机上的tnsnames.ora文件里边定义的数据库连接串。

2.使用方法:
Java代码 复制代码   收藏代码
  1. SELECT COUNT(*) FROM TABLE_NAME@DB_LINK WHERE WHERE_CLAUSE;//查阅远程数据库的内容。  
  2. UPDATE TEST.TEST@DB_LINK SET SO_NBR=NEW_SO_NBR    
  3. WHERE WHERE_CLAUSE;//修改远程数据库的内容。  
在实际使用过程中,还可以通过为这个远程表建立一个同义词来进一步增加透明性,使该数据库连接串对于程序和开发人员来讲完全透明。
Java代码 复制代码   收藏代码
  1. CREATE SYNONYM TABLE_NAME FOR TABLE_NAME@DB_LINK;   
3.数据库连接的管理:
如何知道当前用户、当前系统中有哪些数据库连接串?
Java代码 复制代码   收藏代码
  1. SELECT * FROM USER_DB_LINKS;   
这个查询会给出当前用户的数据库联接的名字、联接用户名、联接密码、要连接的主机以及创建时期。
Java代码 复制代码   收藏代码
  1. SELECT * FROM DBA_DB_LINKS;   
这个查询会给出当前系统中所有的数据库联接的创建用户、联接用户名、要连接的主机以及创建时期。
Java代码 复制代码   收藏代码
  1. SELECT * FROM V$DBLINK;  
这个查询会给出当前打开的数据库联接。
4.常见错误处理:
不能分解服务名:
登录到远程服务器上的结果:
Java代码 复制代码  收藏代码
  1. SQL>show parameters global_name    
  2.   
  3. NAME TYPE VALUE    
  4. ------------------------------------ ------- ------------------------------    
  5. global_names boolean FALSE    
  6. SQL>    
  7. SQL>drop database link jinhua;   
  8. 数据库链接已丢弃。   
  9. SQL>create database link jinhua    
  10. 2 connect to username identified by password    
  11. 3 using 'jinhua';   
  12. 数据库链接已创建。    
  13. SQL>select * from so@jinhua;    
  14. select * from so@jinhua    
  15. *    
  16. ERROR 位于第 1 行:    
  17. ORA-12154: TNS:不能分解服务名称.    
  18. SQL>conn username/password@jinhua;    
  19. 已连接。    
  20. SQL>    
  21. 这是因为在Oracle数据库所在的Unix主机上面的tnsnames.ora文件里边没有对jinhua这个服务名的定义。所以不能分解服务名。  
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值