oracle同义,oracle同义词

搞了几天数据同步的程序,写完之后觉得很浪费,因为oracle自身的数据库联机备份功能已经相当强大。不过关键一点是我们应用场景跟联机备份有很大差别。

虽然这次没用上oracle自身备份功能,但是有一个通过建立db link 来实现同步倒也很简单,查询了网上资料之后,自己也实现了这一功能。

具体步骤如下:

场景:

数据库版本:oracle9i,默认情况下两个数据库服务器都是刚建好的

局域网或广域网上两台能互联的数据库服务器,一个是main,一个是ass,现在每往main中某一表test增删改一条记录时,ass中test表通过main库中触发器来增删改,哦,对了两个test结构一样

我现在实现的是局域网内的数据同步:

预热:

先建表

*****************************************************************

-- Create table

create table TEST

(

USERNAME VARCHAR2(20),

PASSWORD VARCHAR2(10)

)

tablespace SYNTEST

pctfree 10

initrans 1

maxtrans 255

storage

(

initial 64K

minextents 1

maxextents unlimited

);

*****************************************************************

1:先构建一下ass数据库实例的连接符,先备份一个%oracle_home%--ora92--network--admin-->tnsnames.ora,然后用UltraEdit打开,添加如下

*****************************************************************

ass100 =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVICE_NAME = syntest)

)

)

*****************************ok************************************

注意:ass100是用于网络连接用的名称,2中要用到

2:建立db_link

*****************************************************************

create public database link syntest100

connect to syntest

identified by syntest

using 'ass100'

*****************************************************************

注意:syntest100是db link 名称,可以随便起名,

ass100就是1中的建立的连接符名称

3:如果2执行通过的话,就可以建立同义synonym

*****************************************************************

create or replace synonym syn100 for

*****************************************************************

注意:syntest100就是2中的db link 名称,syntest.test是ass中的实例名.表名

小提示:执行完3后,可以在本地执行select * from syn100,这时得出来的结果是ass数据库中表test的数据。

4:如果以上都正确的话,现在可以为本地表test建触发器,我写了3个触发器,增加,删除,修改

*****************************************************************

--增加

create or replace trigger synins

after insert on test

for each row

begin

insert into syn100 (USERNAME,Password) values (:NEW.USERNAME,:NEW.password);

end;

--执行完,可以测试一下

/*

添加本机一条记录

insert into test (username,password) values ('murphy','1234')

查看ass表test

select * from syn100

可以吧,我这里是ok的。

*/

--修改

create or replace trigger synupd

after update on test

for each row

declare

begin

update syn100 set password = :new.password where username = :old.username;

end synupd;

--执行完,可以测试一下

/*

修改本机一条记录

update test set password = '123' where username = 'murphy'

查看ass表test

select * from syn100

*/

--删除

create or replace trigger syndel

after delete on test

for each row

declare

-- local variables here

begin

delete from syn100 where username=:old.username;

end syndel;

--执行完,可以测试一下

/*

删除一条本地记录

delete from test where username = 'murphy'

查看ass表test

select * from syn100

*/

****************************全文完*************************************

本文分享 CSDN - 田维常。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

stm32 整数加法循环时间_【教学设计】小数加法教学设计

小数加法教学设计刘秀锦舞钢市特殊教育学校教材分析本节课是第四单元“小数加减法”的第一课时,小数加减法是以整数加减法为基础进行教学的,本节课走踏实了,后边的知识才能顺利的进行下去,所以本节课还是以小步走、学一点、练一点…

调用WindowsAPI显示帮助提示

导言 前一段时间,在编写程序的过程中,需要一个帮助功能按钮。这个按钮众所周知,按下按钮以后,鼠标变成带有问号的鼠标,然后点击画面上的控件,然后就回出现一个提示的文本,该处是什么含意。就好像…

python整形魔法_python 魔法方法

1、什么是魔法方法?魔法方法就是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一切都是自…

oracle正则匹配全部,sql – 返回Oracle中正则表达式的所有匹配项

您已经提供了数据样本,说明这是一行,但已将其显示为两个不同的行.所以这个例子基于你的话.-- Sample of data from your question extra row for the sake of demonstration-- id column is added to distinguish the rows(I assume you have one)with t1(id, col) as(select …

hashtable,dictionary 从原理上说说有什么异同,哪个性能高一些

hashtable里存的对象全部是object类型 ,所有对象存进去都被转成object类型,读取出来每次都需要转换类型,hashtable对存入的类型没有限制 , 因此在读取转换类型时容易出错, dictionary只能存入定义时指定的类型,而且不像hashtable会把类型转换成object,存取起来比前者方便,效率更…

riak php7,Laravel中服务提供者的register和boot分别是干什么

register方法正如前面所提到的,在register方法中只绑定事物到服务容器,而不要做其他事情,否则,一不小心就能用到一个尚未被加载的服务提供者提供的服务。现在让我们来看看一个基本的服务提供者长什么样:namespace AppP…

天锐绿盾解密_天锐绿盾数据防泄密系统

天锐绿盾数据防泄密系统(简称数据防泄密系统)是一套从源头上保障数据安全和使用安全的软件系统。包含了文件透明加解密、内部文件流转、密级管控、离线管理、文件外发管理、灵活的审批流程、工作模式切换、服务器白名单等功能,并全面覆盖Mac、…

批处理文件入门

后缀是bat的文件就是批处理文件,是一种文本文件。简单的说,它的作用就是自动的连续执行多条命令,批处理文件的内容就是一条一条的命令。那它有什么用呢? 比如,在启动wps软件时,每次都必须执行 C:\>cd wp…

python批量生成图片_利用Python批量生成任意尺寸的图片

实现效果通过源图片,在当前工作目录的/img目录下生成1000张,分别从1*1到1000*1000像素的图片。效果如下:目录结构实现示例# -*- coding: utf-8 -*-import threadingfrom PIL import Imageimage_size range(1, 1001)def start():for size in …

sql server linkserver oracle,SQL Server中使用Linkserver连接Oracle的方法

1.安装Oracle Client连接到Oracle的前提是在SQL Server服务器上安装Oracle Client。Oracle Client下载地址如下:安装完毕后要修改对应的tnsnames文件才能连接对应的数据,该文件所在目录:Oracle安装路径\product\10.2.0\client_1\NETWORK\ADMI…

SQL Server日期格式转换大全

Sql Server 中一个非常强大的日期格式化函数 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVERT(varchar(100), GETDATE(), 3): 1…

oracle传date参数十二小时,Oracle数据库中 to_date()与24小时制表示法及mm分钟的显示...

一、在使用Oracle的to_date函数来做日期转换时,时候也许会直接的采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810 格式代码出现两次”。to_date(2005-01-01 13:14:20,yyyy-MM-dd HH24:mm:ss)原因是…

矩阵维度必须一致_如何从看得懂到会使用矩阵思维

本来我一开始是想学习如何使用艾森豪威尔矩阵的,但是利用学习观的方法想去网上找有关艾森豪威尔矩阵的例子时,发现网上几乎没有,网上能搜出来的都是对这个矩阵的介绍,看完这些介绍你会发现很简单,都能看懂,…

Windows 7 / Vista 分区问题

这个问题开始也困扰我很久,终得一无需安装软件且一招见招之法,步骤如下: 1.Windows键R,打开运行对话框,键入:diskpart #进入Windows 自带的磁盘管理程序进入DOS窗口:DISKPART> 2.键入&#x…

linux下的文件系统,Linux系统中常见的文件系统有哪些?

Linux系统是现在非常受欢迎的操作系统,在Linux之中,一切都是文件,因为有很多操作都是依靠文件系统才可以完成的,而且文件系统可以满足用户正常的使用,那么Linux中常见的文件系统有哪些?为大家介绍一下。总体来说&…

numpy 归一化_归一化(MinMax)和标准化(Standard)的区别

此文参考https://blog.csdn.net/u010947534/article/details/86632819定义上的区别归一化:将数据的值压缩到0到1之间,公式如下标准化:将数据所防伪均值是0,方差为1的状态,公式如下:归一化、标准化的好处&am…

学习网页栅格系统的几篇好文

1.[蓝色理想]网页的栅格系统设计[1] http://www.blueidea.com/design/doc/2008/6171.asp 2.[蓝色理想]网页的栅格系统设计[2] http://www.blueidea.com/design/doc/2008/6171_2.asp 3.网页栅格系统研究(1):960的秘密 http://www.68design.net…

linux中updatedb命令详解,updatedb命令

updatedb命令用来创建或更新 slocate/locate 命令所必需的数据库文件。updatedb命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入 slocate/locate 数据库文件中。 注意:slocate 本身具有一个数据库&#xff…

python多态_Python基础入门18节-第十六节 面向对象如何理解多态

多态是面向对象的一大特性,Python本身也是一门多态性的语言。在Python中要实现多态,还是得借助于上节提到的继承。假设有这么一个场景,在夏季我们可以看到荷花、牡丹花、太阳花,夏天一到这些花全都开放了。这些花我们就将它理解多…

WCF中的方法重载 实现

操作重载注意:WCF是不支持重载的,如果硬是写成重载的话,会抛出异常 InvalidOperationException,但是我们可以模拟! 原C#中的方法重载: interface ICalculator...{ int Add(int arg1,int arg2); double Add(double arg1,double arg2);} 在…