- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
问题描述:
在软件开发中,有点时候需要连接远程的数据库,或者你自己的数据库有两个用户,一个用户要操作另一个用户的某些表。 遇到这些问题就需要一种解决办法。本人使用的是oracle数据,这里给大家介绍oracle是怎么处理的。
解决一:
连接远程数据库的问题,首先你需要知道你要连接远程服务器的ip地址,sid,用户账户,用户密码。
iP地址,账户和密码这里我就不用给大家解释了,连着都不知道你只能回家种地了,但是sid也许有些人不知道,sid是数据库的实例名,比如一般装oracle数据库的时候sid默认的是orcl,sid是可以改变的。
有了这些基本的资料就可以进行一系列的操作了。
解决连接远程数据库需要创建dblink。具体创建dblink的方法如下:
1:创建dblink
远程数据库的信息:
ip:10.115.15.13 sid:rmis user:ris pwd:ris 端口:1521
本地数据库需要执行的语句:
create public database link hr_cf_link
connect to ris identified by ris
using (description=
(address_list=
(address=(protocol=tcp)(host=10.115.15.13)(port=1521))
)
(connect_data=(service_name=rmis))
)
2:通过dblink对远程数据库的某个表进行增删除的处理。
select * from factory@hr_cf_link ;//查询对方表要用表明,加上@,加上diblink链接名:hr_cf_link 对远程表的查询。
通过dblink查询表中的记录
select * from factory@hr_cf_link
通过dblink添加表中的记录
insert into factory@hr_cf_link values(1001,国电)
通过dblink删除表中的记录
delete from factory@hr_cf_link where id=1001
也许你会说每次都要用@diblink链接名,挺麻烦的有没有消除dblink链接名的方法?有当然有。下面教你怎么处理:
创建同义词,把你要操作的远程数据库的某个表,在本地创建一个同义词,以后对这个同义词进行增删改就可以了。具体方法如下:
3:创建同义词
CREATE SYNONYM gongcb FOR factory@hr_cf_link;
同义词创建后,我们以进行如下进行数据查询,上面句子中gongcb就是同义词,SYNONYM 是创建同义词的关键字。
这里是一个查询:
select * from gongcb ;//来查询远程表
也许有一天你不想用这个dblink和这个同义词了,不删除自己觉得碍事,下面来告诉你怎么删除
4:删除dblink
drop public database link hr_cf_link ;
特别注意:如果创建dblink的时候是create database link hr_cf_link,
则删除的时候用 drop database link hr_cf_link
如果创建dblink的时候是create public database link hr_cf_link,
则删除的时候用drop public database link hr_cf_link ;
如果你不注意这些,执行的时候肯定要报错。
5:删除同义词
drop synonym 《同义词名称》
例如:drop synonym gongcb
解决二:
对本地的用户,我用A用户和B用户来区分,如果本地数据库A用户要操作B用户里面的表,同样可以通过创建dblink来实现,也可以通过赋权限来实现
在B用户里面执行如下sql:
在B用户中,给A用户赋予查询pinzb表的权限
grant select on pinzb
文档评论(0)