惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
H
Help Net Security
F
Fortinet All Blogs
MyScale Blog
MyScale Blog
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 司徒正美
量子位
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
Recorded Future
Recorded Future
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News
aimingoo的专栏
aimingoo的专栏
I
InfoQ
Microsoft Security Blog
Microsoft Security Blog
Scott Helme
Scott Helme
The Last Watchdog
The Last Watchdog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
AI
AI
WordPress大学
WordPress大学
Security Archives - TechRepublic
Security Archives - TechRepublic
Google Online Security Blog
Google Online Security Blog
U
Unit 42
V2EX - 技术
V2EX - 技术
MongoDB | Blog
MongoDB | Blog
Schneier on Security
Schneier on Security
博客园 - Franky
H
Heimdal Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
W
WeLiveSecurity
P
Privacy & Cybersecurity Law Blog
Cloudbric
Cloudbric
B
Blog RSS Feed
N
News | PayPal Newsroom
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
I
Intezer
Hacker News - Newest:
Hacker News - Newest: "LLM"
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园_首页
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
雷峰网
雷峰网

博客园 - 孙英雄

C# 窗体抖动 “嵌入式资源”的调用 - 孙英雄 - 博客园 只能输入数字的TextBox---补充 只能输入数字的TextBox DevExpress7.3.4部分控件继承后无法编辑解决方案 Mssql安全设置 .NET中如何生成静态页 - 孙英雄 - 博客园 ASP.NET跨页面传值技巧总结 预报:卡巴斯基v6.0个人版KEY获取器---修正版 - 孙英雄 - 博客园 动态读取App.Config WEB开发调试利器:Firebug SQL函数 关注SharpDevelop的一些问题 又一款Auto病毒专杀工具,可解决双击无法打开盘符的问题 Office2007体验及下载 简单讲述基于SQL SERVER 分页的存储过程 Access中的模糊查询 - 孙英雄 - 博客园 DataGrid控件排序方法 Asp.net中的常用小技巧
SQL2000与Oracle的分布式操作
孙英雄 · 2008-09-29 · via 博客园 - 孙英雄

 最近做的项目都会与Oracle产生数据的级联,在此标记:

数据库:
     我方项目:SQL2000(独立服务器--Win2003)
     客户:Oracle 9I(独立服务器--Win2003)
     
需求:
     当我方项目中特定数据发生变动时,包括新增,更新,删除时.要同步客户方的某数据库中数据.
本来想用触发器来做.考虑到维护问题所以放弃.改用分布式操作.
过程:
     首先要在我方服务器上安装Oracle客户端(因为要用OLE DB来连接),安装过程略过.测试Oracel没有问题后,就可以直接在"企业管理器"中建立"链接服务器"
"企业管理器"->选择自己的SQL服务器-->"安全性"-->"链接服务器".如图1
图1:


 右键单击"链接服务器"-->选择"新建链接服务器"-->在弹出的窗体的"链接服务器"中写入一个名字"HIS"(以后在TSQL中要用地)"服务器类型"下选择"其它数据源"
在"提供程序名称"的右面的下拉框中选中"Microsoft OLE DB Provider for Oracle"
如图2
图2:

下面就是填写"产品名称",数据源,连接字符串.这些内容都要可以在下面文件
"H:\oracle\ora92\network\ADMIN\tnsnames.ora"找到,其中"H:"是Oracle的安装盘
用记事本打开后内容如下:

# TNSNAMES.ORA Network Configuration File: H:\oracle\ora92\network\admin\tnsnames.ora
# Generated 
by Oracle configuration tools.74 =
  (DESCRIPTION 
=
    (ADDRESS_LIST 
=
      (ADDRESS 
= (PROTOCOL = TCP)(HOST = 192.168.0.0)(PORT = 1521))
    )
    (CONNECT_DATA 
=
      (SERVICE_NAME 
= recdb)
    )
  )

其中"74"便是"产品名称","数据源"所要填写的内容,"连接字符串":uid=Oracle用户;pwd=Oracle密码.全部内容如图3

然后选择"安全性"页,选择下面的"用此安全上下文进行"输入"远程登录"(Oracle用户名)和"远程登录密码"(Oracle用户密码),之后再打开"服务器选项"页将下面"值"
列全部勾选上.如图4

点击"确定"后,全部的配置就结束了.再看"企业管理器"的"链接服务器"下面就多了一个名称是"HIS"的链接服务器.
下面用'T-SQL'来操作Oracle的表:

/*
OPENQUERY(HIS, 'SELECT * FROM his.R_DEPT')
其中的'HIS'便是链接服务器的名称
*/
--查询R_DEPT表的数据,并列出所以有字段
SELECT * 
FROM OPENQUERY(HIS, 'SELECT * FROM HIS.R_DEPT')--查询R_DEPT表的数据,只列出'dept_code'字段的内容
SELECT * 
FROM OPENQUERY(HIS, 'SELECT dept_code FROM HI.R_DEPT')--查询指定条件的记录
SELECT * FROM OPENQUERY(HIS,'SELECT * FROM HIS.R_ADDRESS') A WHERE A.ADDR_CODE='3294'
 
--插入一条新记录
INSERT INTO OPENQUERY(HIS,'select addr_code,address from his.r_address')
VALUES('3294','test')--更新指定条件的记录
UPDATE OPENQUERY(his,'SELECT ADDR_CODE,ADDRESS FROM HIS.R_ADDRESS'SET ADDRESS='TEST' WHERE ADDR_CODE='3294'--删除指定条件的记录
DELETE FROM  OPENQUERY(HIS,'SELECT * FROM HIS.R_ADDRESS'WHERE ADDR_CODE='3294'

注:以上操作,需Oracle用户有相关权限.

强烈建议,在编辑文章时加下"实时自动保存"功能,偶写内容时IE崩溃两次,重写了两次.郁闷!!!
(完)