SQLServer2000存储过程中通过数据库链接操作Oracle数据库

通过数据链接(Database Link),从Oracle 10g 连接 SQL Server 2000(实例)  通过数据链接(Database Link),从Oracle 10g 连接 SQL Server 2000(实例)从Oracle 10g连接SQL Server2000,需要用透明网关(Transparent Gateway),通过它,我们可以 sqlplus 操纵其他数据库,如 ms sqlserver 、 sybase 、 infomix 等,实现数据库的异构服务。在Oracle 8i中没有透 阅读详情
 

2005-2-22开发日记:

我的存储过程局部如下:

CREATE PROCEDURE P_Job_ScanMOMessage
 AS

      ---Step1:从Oracle数据库中读取上行记录写进表:T_DWS_MO_Message
      INSERT INTO T_DWS_MO_Message(MO_Mobile,SMSContent,LinkID) Select MOMobile, Content,LinkID From    openquery(hnoracle,'Select * From MOMessage8')
 
      ---Step2:删除Oracle数据库上的上行记录
      Delete from openquery(hnoracle,'Select * From MOMessage8')

 .....

  注意:蓝色字体部分的两条语句,是操作Oracle数据库的.

  在SQLServer2000企业管理器中编辑存储过程总是出现:
   SQL-DMO (ODBC SQLState:42000)
   错误:7405 异类查询要求为连接设置 ANSI_NULLS和ANSI_WARNINGS ...........


    解决方法如下:
    请在查询分析器中创建这个存储过程,以后这个存储过程在企业管理和查询分析器都能修改了。 
 
对于存储过程,SQL  Server  使用最初创建存储过程时的  SET  ANSI_NULLS  设置值。无论随后何时执行存储过程,SET  ANSI_NULLS  的设置都还原为其最初使用的值并生效。当在存储过程内唤醒调用  SET  ANSI_NULLS  时,其设置不更改。 
 
在执行分布式查询时应将  SET  ANSI_NULLS  设置为  ON。 
 
在执行分布式查询时应将  ANSI_WARNINGS  设置为  ON。 
 
企业管理中的ANSI_NULLS和ANSI_WARNINGS选项不对,但没有方法改动。在查询分析器可以设置ANSI_NULLS和ANSI_WARNINGS选项,而且默认值是对的。所以能在查询分析器创建此类存储过程,而不能在企业管理器创建此类存储过程。


 

CREATE Function GetByteSubstring(@str varchar(8000),@len int)
returns varchar(8000)
as
begin
 declare @i int
 exec master..sp_GetMBCSCharLen @str,@len,@i out
 if @i is not null set @str=left(@str,@i)
 return(@str)
end



 

    SET XACT_ABORT ON      <--必须设置这条语句

-- 必须设置这个选项目,否则出现 OLE DB 错误跟踪
    --[OLE/DB Provider 'MSDAORA' ITransactionLocal::StartTransaction returned 0x8004d013:  ISOLEVEL=4096
    --解决异构服务器的触发器 参考:http://support.microsoft.com/default.aspx?scid=kb;EN-US;280106

创建链接数据库方式的步骤在这里不重复说明,很多地方都有资料!

CREATE TRIGGER TransferMTMessage ON [dbo].[T_DWS_MT_Message]
FOR INSERT
AS

    -- 必须设置这个选项目,否则出现 OLE DB 错误跟踪
    --[OLE/DB Provider 'MSDAORA' ITransactionLocal::StartTransaction returned 0x8004d013:  ISOLEVEL=4096
    --解决异构服务器的触发器 参考:http://support.microsoft.com/default.aspx?scid=kb;EN-US;280106
    SET XACT_ABORT ON  

    Declare @Seq int
    Declare @LinkID varchar(20)
    Declare @Content varchar(140)
    Declare @Mobile  varchar(20)
  
    --Step1: 从Oracle数据库获取一个序列的nextval
    Select @Seq=(Select * from openquery(hnoracle,'Select Seq.nextval From dual'))

    --Step2: 获取新插入的数据
    Select @LinkID=LinkID From INSERTED
    Select @Content=SMS_Content From INSERTED
    Select @Mobile=MT_Mobile From INSERTED


    --Step3:将数据通过链接数据库写进Oracle数据库
    INSERT INTO [hnoracle]..[HAILINE].[MTMESSAGE](MTMSGID,MTMOBILE,CONTENT,LINKID,STATUS,SENDTIME,SPFLAG)
       Values(@Seq, @Mobile, @Content, @LinkID,0,NULL,NULL)

    --Step4:删除本地SQLServer下行信息
    Delete From T_DWS_MT_Message Where ID IN( Select ID From INSERTED)

Return

 

SQL Server创建链接服务器的存储过程示例分享 创建链接服务器。链接服务器让用户可以对 OLE DB 数据源进行分布式异类查询。在使用 sp_addlinkedserver 创建链接 服务器后,可对该服务器运行分布式查询。如果链接服务器定义为 SQL Server 实例,则可执行远程存储过程。 http://msdn.microsoft.com/zh-cn/library/ms190479(SQL.90).aspx EXECUTE sp_addlinkedserver @server='DB1', @srvproduct='',@provider='SQLOLEDB',@datasrc='xxx.xxx.xxx.xxx' GO 为远程服 立即下载

相关推荐

科大讯飞(1): 环形6麦语音唤醒—驱动板上的接口

介绍环形麦阵列驱动板上的接口,及其疑问

bing_feilong的博客 1176

SQL SERVER在存储过程中连接其他数据库

 --访问不同电脑上的数据库      --如果经常访问或数据量大,建议用链接服务器       --创建链接服务器    exec   sp_addlinkedserver     srv_lnk,,SQLOLEDB,远程服务器名或ip地址    exec   sp_addlinkedsrvlogin   srv_lnk,false,null,用户名,密码    

hg344700的专栏 2024

拌合楼管理软件开发(十一) 海康威视车牌识别摄像头安装调试,总算是跑通了。

/保存的文件个数这里之所以需要用到委托,直接更新textbox文本中的内容,以及复制picturebox的image会提示不是从齐创建的线程调用。

morsth的博客 4819

[SqlServer]链接数据库存储过程

建立数据库链接: /**//*----------------------运行示例:Pro_LinkServer'dbserver','192.168.1.1','sa','sapassword'--运行后操作数据库:select*fromdb.pubs.dbo.titles--参数:--@linknm:链接别名--@rmserv:链接...

aili2460的博客 231

现场总线课程设计-基于modbus协议使用QT实现主从站控制通信

【平台:QT】 【协议:modbus(注:由于要求,需要自己来实现modbus库,而非直接调用已有的库)】 【由于复制粘贴,时间原因可能格式有误,如需要具体工程文件以及报告文件请私信博主】 1、 大作业任务: (1)使用附件中工具软件体验MODBUS主从站数据传输过程(可在主从站模拟工具里面观察各功能码对应数据帧内容并对其进行分析) (2)使用串口调试助手,手工发出MODBUS主、从站该发出的数据,并观察对方发出的数据 (3)实现MODBUS主、从站功能,描述实现过程(语言不限于使用VC

weixin_44469597的博客 4066

YOLOv8使用设备摄像头实时监测

YOLOv8使用设备摄像头实时监测

Joining667的博客 4188

sqlserver调用mysql存储过程_sqlserver里存储过程怎么调用存储过程

展开全部1、打开SQL server management studio,连接到数据库,展开想要创建的数据库,找到【可编程性】->【存储过程62616964757a686964616fe4b893e5b19e31333431356663】的菜单。2、在第一步找到的【存储过程】菜单项上面,点击鼠标右键,依次选择【新建】->【存储过程】,就可以开始创建存储过程了。3、当点击了第二步的【存储...

weixin_42509409的博客 3129

# 多用户 JupyterHub 配置教程(通用 Linux 服务器版)

以上即是通用 Linux 服务器上的多用户 JupyterHub 实战配置。从安装认证与 Spawner 选择自动创建系统用户到反代与运维,覆盖了小团队到中等规模的主流场景。根据团队增长与合规要求,你可以进一步引入、统一身份源(LDAP/OAuth2/Keycloak)与资源配额治理,平滑演进到企业级部署。

数字化老司机 1291

[转]SQLSERVER存储过程调用不同数据库的数据_存储过程中通过链接服务器访问远程服务器...

本文转自:http://blog.youkuaiyun.com/nnaabbcc/article/details/7967761   存储过程调用不同数据库的数据 在存储过程调用不同数据库的数据该如何做,比如在存储过程名为AAA的存储过程里面调用数据库为hudu1,hudu2,hudu3里面的数据来统计? 在同一台数据库服务器上: select * from hudu1...

weixin_34364135的博客 797

delphi 调用deepseek r1 api 并流式返回结果

摘要:本文展示了一个使用Delphi调用DeepSeek API的代码示例,包含两种调用方式:一次性获取结果和流式返回结果。代码实现了完整的API请求处理,包括HTTP客户端设置、JSON数据处理和UI界面交互。其中流式调用通过TStreamReader处理服务器发送事件(SSE),实时更新到TRichEdit控件并保持滚动条位置。文章还提到界面美化优化,为Delphi开发者提供了调用AI服务的实用参考方案。(150字)

全粘工程师 502

【Mode】微带传输线阻抗

微带线,英文名称为 (Microstrip) 是一种常见的平面传输线,主要用于传输微波频率信号(通常在射频和微波电路重中使用)。

u011699626的博客 245

SQL Server的链接服务器技术小结

一、使用 Microsoft OLE DB Provider For ODBC 链接MySQL安装MySQL的ODBC驱动MyODBC1、为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为 myDSN 2、建立链接数据库EXEC sp_addlinkedserver @server = 'MySQLTest', @srvproduct='MySQL', @pro...

zhangziyueup 107

VTK API 详解(115):vtkScalarBarActor - 显示颜色条

显示用于颜色映射的标量值范围。自动从vtkMapper中提取。可设置颜色条的位置、大小、字体、标签格式等。支持横向或纵向显示颜色条。是进行科学数据伪彩色可视化时非常重要的辅助工具,它能让用户直观地理解不同颜色代表的数值大小。通过灵活设置颜色表、标题、标签数量等,可以适配多种可视化需求。

yumeiguo的博客 490

SQL Server的链接服务器技术小结(转)

一、使用 Microsoft OLE DB Provider For ODBC 链接MySQL 安装MySQL的ODBC驱动MyODBC 1、为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为myDSN 2、建立链接数据库 EXEC sp_addlinkedserver @...

weixin_30362083的博客 76

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SQLServer 客户端链接服务器到Oracle数据库 全攻略

引言 和第三方公司进行接口对接时,发现某一个模块第三方只提供一个视图,还让我们直接调用他们数据库????????????;下面我就开始了Sql Server服务器远程链接Oracle服务器的旅程。 目录引言安装Oracle数据访问组件ODAC1. ODAC包下载地址2. ODAC包解压缩3. ODAC包安装4. 设置环境变量5. 配置tnsnames.ora文件6. 注意事项7. 遇到的问题Sql Server 远程连接Oracle1. 图形界面创建Oracle链接服务器2. 命令创建Oracle的链接服务

爱江山更爱美人 2万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SQL SERVER 2000使用链接服务器操作ORACLE数据库

SQL SERVER 2000使用链接服务器操作ORACLE数据库一、使用SQL Server企业管理器1.                 打开SQL Server 2000企业管理器2.                 选择“安全性”—>链接服务器—>右键“新建链接服务器”,如图1所示:图1)        在上图1中,链接服务器一栏输入链接服务器名称:为链

swfcsunboy 6582

Sqlserver2000连接Oracle11G数据库进行数据实时同步

Sqlserver2000连接Oracle11G数据库进行数据实时同步 1,前提条件 已经有sqlserver2000环境,已经存在oracle11g环境,准备这两个数据库,建立各自的访问账号,两者之间需要ping通,telnet端口也要能通,目的是将sqlserver里面的数据自动同步到oracle数据库里面去。Sqlserver里面有链路服务器(linked server)可以实现...

csdn's blog 1万+

SQLServer,MySQL,Oracle,PostgreSQL数据库优缺点

Oracle,Mysql,SQLServer三分天下,SQLServer入门门槛确实低,Oracle灵活度大学习成本高,Mysql也有社区版和收费版,Mysql收费版有更高的性能更好的备份工具

港城大白鲨 4984

如何在ORACLE数据库访问MSSQL

 在ORACLE数据库访问MSSQL:配置异构数据库:Oracle下配置透明网关访问MS SQL SERVER配置环境:Oracle服务器:192.168.1.218 Oracle9.2.0.1 for Windows SID:lrdbMS SQL服务器:192.168.1.244 SQL SERVER 2000 要访问的库:lfkf1、安装 TRANSPARENT GATEWAY 选件(FOR

chqchq的专栏 1830

oracle11g+sqlserver2000+odbc64配置

1 环境描述 1.1 Oracle11g IP地址:192.168.1.142 Oracle根目录:F:\app\Administrator\product\11.2.0\dbhome_1 Oracle端口:1521 SID:orcl 用户名:system 密码:123456 1.2 odbc64 IP地址:192.168.1.142 odbc配置根目录:F:\app\Administrator\...

xtluzisen的博客 599

通过数据链接(Database Link),从Oracle 9i 连接 SQL Server 2000(实例)

从Oracle 9i连接SQL Server2000,需要用透明网关(Transparent Gateway),通过它,我们可以 sqlplus 操纵其他数据库,如 ms sqlserver 、 sybase 、 infomix 等,实现数据库的异构服务。 在Oracle 8i中没有透明网关,9i自带,但是默认不安装。 (一)安装Transparent Gateway for ...

weixin_34275734的博客 184

oracle 连sql server,通过ORACLE通用连接访问SQLServer数据库的方法

以下的例子,要通过ORACLE通用连接,建立三个ORACLE的DATABASELINK,分别用于访问SQL2000服务器的ET2000,OFSS2000和BK2000数据库.1.在ORACLE服务器上,新建三个ODBC系统数据源,名称分别为ET2000,OFSS2000,BK2000;三个数据源都访问目标的SQLSERVER实例,不同之处仅在与默认连接的数据不同.2.在ORACLE服务器上,ORA...

weixin_39866741的博客 1411
上一篇: 在SQLServer2000中按照Byte计算字符串长度
下一篇: 一个通过Oracle8i存储过程,返回记录集的程序包(存储过程)
johnsonTj
博客等级 码龄23年 26粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值