Oracle 数据链的使用
来源:互联网 发布:易直播软件下载 编辑:程序博客网 时间:2024/06/05 01:08
oracle 数据链使用实例
(一)
两台不同的数据库服务器,从一台数据库服务器的一个用户读取另一台数据库服务器下的某个用户的数据,这个时候可以使用dblink。库中的view差不多,建dblink的时候需要知道待读取数据库的ip地址,sid以及数据库用户名和密码。
创建有俩个方式,
1未配置本地服务
1未配置本地服务
create database link linkname
connect to dbuser identified by dbpassword
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.122.110)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = rac)
)
)';
connect to dbuser identified by dbpassword
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.122.110)(PORT = 1521))
)
(CONNECT_DA
(SERVICE_NAME = rac)
)
)';
其中 linkname 是数据链名称 ,dbuser 登陆用户名 ,dbpassword 登陆密码 ,HOST= 对方ip,PORT =端口,SERVICE_NAME=数据库的sid
2 已配置本地服务
CREATE DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’;
例如
例如
create public database link linkfwq connect to dbuser
identified by dbpassword using 'dora'
identified by dbpassword using 'dora'
其实两种方法配置dblink是差不多的,我个人感觉还是第一种方法比较好,这样不受本地服务的影响。
数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.
数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样
数据库全局名称可以用以下命令查出
SELECT * FROM GLOBAL_NAME;
查询远端数据库里的表
SELECT …… FROM 表名@数据库链接名;
查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。
数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.
数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样
数据库全局名称可以用以下命令查出
SELECT * FROM GLOBAL_NAME;
查询远端数据库里的表
SELECT …… FROM 表名@数据库链接名;
查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。
删除dblink:DROP PUBLIC DATABASE LINK linkfwq。
如果创建全局dblink,必须使用systm或sys用户,在database前加public。
如果创建全局dblink,必须使用systm或sys用户,在database前加public。
(二)双向数据链 数据链脚本:
数据链脚本:
数据库建好以后,需要在A数据库和B数据库中建立双向的数据库链。
A到B的数据库链:
CREATE DATABASE LINK [to_transdb] ——to_transdb是数据库链的名称,不要改;
CONNECT TO [B数据库用户名,如:unicom]
IDENTIFIED BY [密码,如:unicom]
USING ['A的数据库名,如:SDHDB']
B数据库到A的数据库链:
CREATE DATABASE LINK [to_customerdb] ——to_customerdb是数据库链的名称,不要改;
CONNECT TO [A数据库用户名,如:consumer]
IDENTIFIED BY [密码,如:consumer]
USING ['B数据库名,如:zjdb']
实例:B到A的数据库链
CREATE DATABASE LINK to_customerdb
CONNECT TO consumer
IDENTIFIED BY consumer
USING 'zjdb' ——假如B数据库名是zjdb
同一个实例下,有两个用户,这两个用户表数据间的同步。
各自用自己的用户登录,创建数据库链。
然后在需要同步的表上,创建触发器:
insert 同步。(示例)
create or replace trigger t_insert_equippack
after insert on equippack
for each row
declare
begin
insert into res_equippack@to_customerdb
(EQUIPCODE, FRAMESERIAL)
values
(:new.EQUIPCODE,:new.FRAMESERIAL);
exception
when others then
null;
end t_insert_equippack;
update同步。(示例)
create or replace trigger t_update_equiplogicport
after update on equiplogicport
for each row
declare
begin
update res_equiplogicport@to_customerdb
set equipcode = :new.equipcode,
frameserial = :new.frameserial,
slotserial = :new.slotserial,
packserial = :new.packserial,
portserial = :new.portserial
where logicport = :new.logicport;
exception
when others then
null;
end t_update_equiplogicport;
delete同步。(示例)
create or replace trigger t_delete_equipment
after delete on equipment
for each row
declare
begin
delete from res_equipment@to_customerdb where EQUIPCODE = :new.equipcode;
exception
when others then
null;
end t_delete_equipment;
--------------------------------------------------------------------
to_customerdb是另个用户建立的数据库链,res_equippack另一个用户的表
两个表中的字段类型,是需要一样的。只要列出需要的数据,两边对应起来就OK。
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.154.20.09)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = sdh)
)
)
如果两个数据库实例不在一台机器上。using '上述代码'
其中HOST是你要链接的数据库所在IP,SERVICE_NAME是你要链接的数据库的服务名
- Oracle 数据链的使用
- oracle数据链
- 使用点对点信道的数据链路层
- 使用广播信道的数据链路层
- 数据链路的创建(oracle数据库与oracle数据库)
- 数据链路的创建(oracle数据库与oracle数据库)
- Oracle中使用透明网关[gateways]数据链接到Sqlserver
- Oracle 数据链路
- ORACLE 创建数据链
- 创建oracle访问mysql的数据链路步骤
- 访问oracle数据链路的blob字段值
- 第三章 数据链路层 3.3使用广播信道的数据链路层
- 数据链的建立和数据链的输出
- Oracle 数据链路问题处理
- Oracle 12c中使用透明网关(gateways) 12.1数据链接到SQL Server 2012
- 数据链
- 一个数据链表的建立
- 数据链路层的协议
- 通用寄存器的主要用途
- Sqlplus 常用命令
- 共享池的SUB POOL技术以及ORA-0301
- C++库介绍
- SAP BW_PA_文件_事务数据——视频学习笔记15
- Oracle 数据链的使用
- js挂马,臭名昭著nu99.com
- git 简单命令
- hdu4167---字符串
- jpa
- android java.net.ConnectException: Connection 127.0.0.1:8080 refused
- 模糊查询不使用拼接字符串
- 谈一点numpy.transpose()矩阵转置操作
- 外文源地址