求救!今天一天要做完30多个!用tsql从oracle导到sqlserver的讨论

solidpanther 2004-03-05 09:48:52
我们需要从oracle8里导入sqlserver一些数据,关于事务很迷惑,问题如下:
1,首先大家帮我检查以下导库的语句写法有什么不足,我30多个大概都是这种结构:
我们需要从oracle8里导入sqlserver一些数据,关于事务很迷惑,问题如下:
1,首先大家帮我检查以下导库的语句写法有什么不足,我30多个大概都是这种结构,我举个简单的例子:
因为我需要将数据导入到sqlserver中,然后修改oracle的数据,所以我要用事务,而
大多数 OLE DB 提供程序,隐性或显式事务中的数据修改语句必须将 XACT_ABORT 设置为 ON

--MyOra为oracle库,yewu为用户
SET XACT_ABORT ON
BEGIN TRAN
select * into mysqlserverTable from MyOra..YEWU.MyOraTable
insert into MyOra..YEWU.A values ('sd',3,'2002-2-2')
update MyOra..YEWU.A set a='jjjjjj' where ......
IF @@ERROR <>0 BEGIN
ROLLBACK TRAN
END
ELSE BEGIN
COMMIT TRAN
END
SET XACT_ABORT OFF
select * from MyOra..YEWU.A

2,如果出现错误了,比如那个insert语句里我把时间写成“200ddd2-2-2”,就会报错,然后!
不管错的语句还是对的语句都过不去了!一检查!oracle里竟然有锁!测试了老半天,在oracle里
杀锁杀进程,不是马上能杀掉,怎么回事啊,这种问题怎么避免呢(我是指在事务中出现错误,
没有提交事务就会出现死锁)?有没有办法解决或者最大限度的降低出错率呢?

3,锁怎么办呢?我在oracle里建立了一个plsql,有时候可以杀掉锁,有时候竟然提示“不能取消当前进程!”!
大侠们救我 啊!因为不是我要用这些导库脚本,而是用户以后定期或不定期手工用这些脚本导!
他杀不掉锁我还要跑过去的!我写的语句如下,请改进:
declare
cursor KillCur is
SELECT C.SID,
C.SERIAL#
FROM ALL_OBJECTS A, V$LOCKED_OBJECT B, SYS.GV_$SESSION C
WHERE ( A.OBJECT_ID = B.OBJECT_ID )
AND (B.PROCESS = C.PROCESS )
ORDER BY 1,2;
V_SID varchar(100);
v_SERIAL varchar(100);
i integer;
cnum1 INTEGER;
junk NUMBER;
begin
OPEN KillCur;
FETCH KillCur INTO V_SID,v_SERIAL;
WHILE KillCur%FOUND LOOP
cnum1 := dbms_sql.open_cursor;
dbms_sql.parse(cnum1, 'alter system KILL SESSION '''||V_SID||', '||v_SERIAL||'''', dbms_sql.native);
junk := dbms_sql.execute(cnum1);
dbms_sql.close_cursor(cnum1);
FETCH KillCur INTO V_SID,v_SERIAL;
END LOOP;
CLOSE KillCur;
end;
...全文
96 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
本书是Inside Microsoft SQL Server 2005系列四本著作中的一本。它详细介绍了T-SQL的内部体系结构,包含了非常全面的编程参考,提供了使用Transact-SQL(T-SQL)的专家级指导,囊括了非常全面的编程参考,揭示了基于集合的查询的强大威力,并包含大量来自专家们的参考和建议。本书适合专业数据库开发者、BI开发者、DBA和以SQL Server作为后台数据库的一般应用程序开发者,读者可以通过书中的最佳实践、高级技巧和代码示例来掌握这门复杂的编程语言,以切合实际的方案来解决复杂的实际问题。   深入理解T-SQL体系结构,充分利用高级T-SQL查询技术。   本书深入介绍了T-SQL的内部体系结构,揭示了基于集合的查询的强大威力,并包含大量来自专家们的参考和建议。通过本书提供的最佳实践和示例代码,数据库开发人员和管理员全可以掌握这门复杂的编程语言,以切合实际的方案来解决复杂的实际问题。通过本书,你将学习到如何:理解逻辑和物理的查询处理;使用方法论优化查询;在查询中用TOP选项修改数据;用递归逻辑、具体化路径或嵌套集合解决方案查询特殊的数据结构;通过逻辑难题提高你的逻辑能力并掌握查询问题的核心等。   你将学习到如何:   理解逻辑和物理的查询处理;   使用方法论优化查询;   解决关系分区问题;   使用CTE和排名函数简化及优化解决方案;   用各种技术聚合数据,包括附加属性、旋转、直方图和分组因子;   在查询中用TOP选项修改数据;   用递归逻辑、具体化路径或嵌套集合解决方案查询特殊的数据结构;   通过逻辑难题提高你的逻辑能力并掌握查询问题的核心; 内容简介 本书是Inside Microsoft SQL Server 2005系列四本著作中的一本。本书及其续篇——《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》介绍了SQL Server 2005中高级T-SQL查询、查询优化及编程相关的知识。这两本书侧重于解决实践中的常见问题,并讨论了解决这些问题的方法。它们将向你揭示基于集合(set-based)查询的强大威力,并解释为什么它比使用游标的过程化编程(procedural programming)更具优势。同时,它还会教你识别使用基于游标解决方案与基于集合解决方案的优劣。   书中还讲述了其他几种争议较多的构造(camstruct)——如临时表、动态执行、XML和.NET集成——它们在具有强大功能的同时,也具有极大的风险。   本书适合于需要编写或检查T-SQL代码的有经验的T-SQL程序员和数据库专业人员。读者可从中学到大量精湛的技巧,这些技巧会充实您的工具箱和编码技能,并让您顺利地开发出高效的解决方案。 作者简介 Itzik Ben-Gan是Solid Quality Learning的首席导师和创始人。他从1999年开始便一直是SQL Server方面的Microsoft MVP,在世界各地讲授 T-SQL查询、编程和查询优化相关的课程,并提供相关咨询服务。他在SQL Server Magazine和MSDN上发表了多篇文章,并被邀请在许多专题会议上过报告,包括TechEd、DevWeek、PASS和SQL Server Connections。 目录 序 前言 致谢 引言  本书的组织  系统要求  安装示例数据库  更新  代码示例  本书支持 第1章 逻辑查询处理  逻辑查询处理中的各个阶段   逻辑查询处理阶段简介  Customers/Orders场景下的示例查询  逻辑查询处理步骤详解   步骤1:执行笛卡尔乘积(交叉联接)   步聚2:应用ON筛选器(联接条件)   步骤3:添加外部行(Outer Row)   步骤4:应用WHERE筛选器   步骤5:分组   步骤6:应用CUBE或ROLLUP选项   步骤7:应用HAVING筛选器   步骤8:处理SELECT列表   步骤9:应用DISTINCT子句   步骤10:应用ORDER BY子句   步骤11:应用TOP选项  SQL Server 2005中新的逻辑处理阶段   表运算符   OVER子句   集合操作  结论 第2章 物理查询处理  查询处理期间的数据流  编译   Algebrizer   优化   使用查询计划   更新计划  结论   致谢 第3章 查询优化  本章用到的示例数据  优化方法论   分析实例级的等待   联系等待和队列   确定方案   细化到数据库/文件级别   细化到进程级别   优化索引/查询  查询优化工具   syscacheobjects   清空缓存   动态管理对象   STATISTICS IO   测量查询的运

22,297

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧