A库创建dblink访问B库数据和报错ora-12154解决方案

早上单位人力资源系统需要和OA系统单点登录,人力系统数据同步OA,OA创建了张临时表,由人力系统主动同步数据,过程中出现了一系列问题:

1、首先人力系统直接粗暴上来创建dblink灌数据(oa数据库ip端口不方便展示,汉字代替)

create database link rs  
connect to xxx
IDENTIFIED by "abdccccc"
using 'jdbc:oracle:thin:@oa数据库ip:端口/数据库用户';
INSERT into  oa表@rs (xm,sjh,sfzh) select A0101 as xm,A0148 as sjh,A0177 as sfzh from  UsrA01;
commit;
drop database link rs;

得到的结果是:去oa查询表数据是空的,但是在人力库查到数据了

排查问题吧:

1、查看人力这边创建dblink权限,为空,也就是查询不出数据

select * from user_sys_privs where privilege like upper('%DATABASE LINK%');  

2、执行付权

grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to 人力数据库用户;  

3、再执行前面的create database link ,执行后,加上数据库连接访问oa的表,报错ora-12154,此报错截图暂时就放了

4、百度看了一段乱七八糟的,最后换种创建数据库连的方式解决

create database link 创建的dblink名字
connect to 需要访问的用户 identified by “密码”
using ‘(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 需要访问的数据库IP地址)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = 服务名)))’;

5、表字段出于安全考虑此处调整了一下,最终搞定(对了,使用数据库直接用@数据库链名)

INSERT into  OA表@RS (xm,sjh,sfzh) 
select aa,bb,cc from 人力表;


 

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值