本文共 1158 字,大约阅读时间需要 3 分钟。
大部分客户有自己的数据库服务器,来管理自己的一些关键数据。那如果我们的项目中需要用到这些数据,而客户又不允许把这些数据插入到我们的项目数据库服务器时怎么办?其中的一个解决办法就是在项目数据库服务器上创建基于客户关键数据服务器的某些表或是视图的同义词。这里我来介绍一下我在项目中做的基于远程服务器视图如何创建同义词的过程。
一、创建database link。两台不同的数据库服务器,从项目数据库服务器的一个用户读取客户关键数据的数据库服务器下的某个用户的数据,这个时候可以使用dblink。假设客户提供的数据库服务器信息如下:
而创建database link的语法为:
这时,先要配置本地服务。打开TNSNAMES.ORA Network Configuration File: D:\ORA\NETWORK\ADMIN\tnsnames.ora文件(根据自己的机器的情况而定),将
LIMSTQ =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.107.6.15)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = VGSM)
)
)
添加到此文件的后面(注意LIMSTQ前面不要留空格)。
然后,再创建dblink。而数据库参数global_name=true时,就要要求数据库链接名称跟远端客户数据库名称一样。我们必须先要确定一下。查看此参数的语句如下:
如果是ture,记得创建的dblink名和远程端的数据库一样,很幸运,我用的数据库参数global_name的value值是false耶。
数据库全局名称可以通过以下命令查出:
查询远端数据库里的表:
这时,我就创建了自己的databae link:create database link limstq.us.oracle.com connect to jlgl identified by jlgl using 'limstq';
二、创建同义词,很简单的哦。建立同义词的语法如下:
我所建立的同义词语法是:create synonym jl_gljs_tb_lims for JLGL_LIMS@limstq.us.oracle.com;
三、同义词创建成功后,就可以在项目数据库服务器上通过select jl_gljs_tb_lims来进行客户的关键数据的查找操作了。但如果可能的话,最好再建立一个视图,形式如下:create or replace view jl_gljs_limstq_vw as select * from jl_gljs_tb_lims;
这样,基于远程服务器视图的同义词创建过程就
转载地址:http://okyhp.baihongyu.com/