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选项,而且默认值是对的。所以能在查询分析器创建此类存储过程,而不能在企业管理器创建此类存储过程。
function StorePage() { d=document; t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():''); void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus(); }
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
function StorePage() { d=document; t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():''); void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus(); }
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
相关推荐
oracle到sqlserver 存储过程语法转换,希望对大家有帮助啊! 最近刚把oracle的数据库移植到sqlserver!
SqlServer2008通过Oracle provider for OLEDB访问远程Oracle数据库 包括链接服务器环境安装、链接服务器创建、远程建表、修改表,增删改查数据,创建、执行带参与无参存储过程的方法等,资料为作者参考网络资料整理...
1、若依分离版本代码 2、数据由mysql变更为SqlServer 3、包含SqlServer数据库备份 4、下载用idea直接打开 5、启动方式和若依本身的启动顺序一样
支持sqlserver ,oracle的数据库结构比较,列出表,视图,存储过程等对象的不同。方便数据库升级。
mysql,sqlserver,oracle三种数据库的大对象存取 mysql , sqlserver , oracle 三种数据库对大对象的不同存储方式...
包含网关包配置步骤等等,文件描述解析,安装配置及指引
两个版本的数据库对比,同时支持sqlserver,oracle,MySql ,代码差异高亮显示 具体功能 介绍博客有图片 :https://blog.csdn.net/wwja_chen/article/details/89336728 如开发库和正式库之间的结构和数据同步,此工具可以...
利用KEPSERVER6 实现写入SQLSERVER.docx
表结构的创建比较简单,但是表的数据量太大,一时也想不到怎么把sqlserver表数据复制到oracle中,于是请教公司主管,用存储过程实现可以查询出所有数据的insert脚本,在oracle库中创建好表,直接把sqlserver中的...
支持oracle,sqlsever,access等数据库之间数据格式转换:即Oracle转SQL Server;SQL Server转Oracle;Oracle转Access;Access转Oracle;SQL Server转Access, Access转SQL Server等。可以实现数据库的移植,异构数据库...
下边是部分目录,觉得有用的话就顶一个 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整tempdb数据库的文件...
1、提供方便快捷的数据库浏览,支持可视化复合条件的查询,特别是查看表中大字段,提供导出...5、支持mysql, Oracle, sql server 2000三种数据库 6、支持数据库查看功能,可查看数据库内容,还可以对数据库内容进行维护
微型Sql Server查询分析器: 有时为了解决问题,需要执行SQL脚本,但是电脑上又没有装SQL... 对主流数据库Sql Server,Oracle,DB2,MySql,Access等都可用,写脚本或存储过程时提示功能十分强大,十分方便,包你爱不释手
SqlDbx 是简单易用的数据库设备,... 可以看到库中有多少表、多少存储过程、多少触发器、多少视图、多少函数,可以直接看到每个表的数据行数,可以导出查询结果的insert语句,还可以对比不同库中同一个表的差异等等。
两个版本的数据库对比,同时支持sqlserver,oracle,MySql ,代码差异高亮显示 具体功能 介绍博客有图片 :https://blog.csdn.net/wwja_chen/article/details/89336728 如开发库和正式库之间的结构和数据同步,此工具可以...
该工具,可设定备份哪几个数据库,是通过vbs与cmd实现,只需改一点配置就可以实现,附带了Oracle的备份
在一次项目中,项目已经就快完了,需求有来了,要求要按指定的方式排序,通过id,时间等进行正排序,倒排序 ...,适合于oracle,mySql,SqlServer,access等数据库中使用,我上传的文件有相关的例子,很容易看懂。
比如说一个做SQL Server开収人员在要写Oracle存储过程的时候可能会先去找那些内置的函数然后比较它们之间不同点,她也可能会去比较发量声明以及错误处理的异同。 本系列文章中我将尝试对Microsoft SQL Server和...
SQLServer2000到Oracle11G存储过程转换技术探究.pdf
Oracle详细介绍 oracle存储过程.ppt 数据库设计.ppt SQL Server应用.ppt 数据库完整性设计.ppt 数据库结构设计.ppt 数据库设计_SQL解析.ppt