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

该博客记录了2005年2月22日开发日记,讲述存储过程从Oracle数据库读取上行记录写入表并删除原记录。在SQL Server 2000企业管理器编辑存储过程出现错误,原因是异类查询要求设置ANSI_NULLS和ANSI_WARNINGS。解决办法是在查询分析器创建存储过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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选项,而且默认值是对的。所以能在查询分析器创建此类存储过程,而不能在企业管理器创建此类存储过程。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值