DBLINK+SYNONYM 笔记

两台ORACLE服务器之间的数据相互查询的方法:
采用DBLINK+SYNONYM(同义词)

<一>先创建DB间的DBLINK(在使用方创建)
创建可以采用两种方式:
1、已经配置本地服务
create public database 
link fwq12 connect to fzept
identified by neu using 'fjept'
CREATE DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’;
2、未配置本地服务
create database link linkfwq
connect to fzept identified by neu
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = fjept)
)
)';

注:host=数据库的ip地址,service_name=数据库的ssid。

例:
create public database link "test_dblink"
using '10.190.102.61:1521/along'      ---using后面为‘本地NET服务名’

最后,使用DBLINK查询远端数据库里的表
例:
SELECT …… FROM 表名@数据库链接名;   

注:@数据库链接名即为建DBLINK时的DBLINK名
查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已


删除dblink:DROP PUBLIC DATABASE LINK linkfwq。

如果创建全局dblink,必须使用systm或sys用户,在database前加public


<二>创建同义词SYNONYM
CREATE SYNONYM 同义词名 FOR 用户.表名

CREATE SYNONYM 同义词名 FOR 用户.表名@数据库链接名

例:(1)。CREATE PUBLIC SYNONYM GLB_FLASH FOR MES.GLB_FLASH
    (2)。CREATE PUBLIC SYNONYM CT_LINES FOR MES.CT_LINES@test_dblink

创建后查询数据时直接使用同义词代替FOR后的数据源
(如。MES.GLB_FLASH(用户/用户表)/CT_LINES@test_dblink(表@dblink名))

最后,本机ORACLE使用同义词查询出另一台ORACLE DB的数据,并且是直接使用对方表名来查询数据。
select * from CT_LINES;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值