暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle数据库之跨库视图查询

阿胡的技术日志 2021-12-11
3057

九月份入场的新项目,和自家公司另一个部门对接的接口,总是遇到各种坑。。真·生命不息,填坑不止。


前段时间刚做了个接口,谁承想消息里面不带基本的身高、体重信息。找各方协调,就是没有这部分数据。没办法,只好找B系统的同事写了个视图给我们,好在个B系统也是同家公司的,人好,做事也爽快。


视图写好了,数据也有了,可是怎么将这部分数据查询提取到界面上是个问题。


首先需要明确两点:

1、B系统和我们A系统是搭载的两个独立服务器,意味着数据库地址不同,查询涉及跨库;

2、B系统和我们A系统都是使用的Oracle数据库。


了解以上两点后,查阅资料就能更加带有目的性:Oracle数据库如何实现跨库查询?


Oracle数据库要想实现B库访问A库数据,可以通过建立DBLINK将两个库连接起来。具体实现方式可分为两种:

1、通过plsql的可视化操作实现;
2、通过编写sql脚本实现。


方法一:通过plsql的可视化操作界面实现,具体操作如下:

1)plsql登录B库连接后,file界面-->NEW-->Database link,填写完以下信息后,点击Apply应用即可。


方法二:通过编写sql脚本实现sql脚本模板如下:

create database link 数据库连接名(随便起)  

connect to A库账号 identified by 密码

using ' (DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = ( PROTOCOL = TCP ) ( HOST = 域名 ) ( PORT = 端口号 ) )

)

(CONNECT_DATA = 

(SERVICE_NAME = A库数据库实例名 )

)

)';

-----------------------------举例----------------------------------

create database link ADBLink  

connect to AAccount identified by AAccount_pwd

using ' (DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = ( PROTOCOL = TCP ) ( HOST = 127.0.0.1 ) ( PORT = 1521 ) )

)

(CONNECT_DATA = 

(SERVICE_NAME = orcl )

)

)';


OK,A、B数据库之间的连接已经创建完成,现在问题就是如何直接在B库中通过这个连接去查询A库中的数据。不卖关子了,查询语句如下:

select * from Atable@创建的数据库连接名;


但是每次查询之后,提交按钮都会亮起来,不清楚Oracle的这种跨库查询方式是否会对数据库性能产生什么影响,等以后遇到了再说吧。


溜了溜了,水完这发再水一发,嘿嘿!


文章转载自阿胡的技术日志,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论