SQLServer2000到Oracle11G存储过程转换技术探究.docVIP

SQLServer2000到Oracle11G存储过程转换技术探究.doc

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQLServer2000到Oracle11G存储过程转换技术探究.doc

  SQLServer2000到Oracle11G存储过程转换技术探究 摘要:本文主要讲述了存储过程转换的具体意义,并详细的说明了不同数据库之间的存储过程的差异,还提出了一种从SQLeSvrerZ000到oracle11G存储过程转换的方法,并且阐述了存储过程的差异和转换以及其具体的设计思路,文中所写转换技术对异种数据库存储过程转换具有普遍的指导意义。 中国 8/vie   关键词:SQLeSvrerZ000;oracle11G;存储过程;转换技术   中图分类号:TP311.13 文献标识码:A :1007-9416(2017)01-0048-01   1 存储过程的差异和转换   在SQL标准产生之前,数据库所使用的是大量的SQL专用语言,这些专用语言在一定程度上植入了个性化的特征,与此同时广受用户群体的青睐。伴随着SQL标准的相继完善,厂商们所用的专用语言也不断向前发展,在此过程中大量的专用语言被引入程序设计概念,从而实现强大的业务逻辑功能。功能中包含了异常处理机制、流控制语法以及众多的扩展功能。大多数专用语言从根本上彼此之间的规范存有显著的差异,就连在实现功能的技术上也是分门别类,但大量的专用语言中都含有条件处理、循环控制、变量声明赋值和异常处理等一系列程序设计语言机制。   SQL语言是SQLServer源程序当中的专用语言,当中的大部分特性并不能够获得Oarcle数据库专用语言的支持,尽管两者间所要实现的功能是相同的,可是两者之间所用的语言机制且截然不同。更为复杂的情况是两者间的语言特性无法对等实现,为了能够实现拥有这一特性的SQLServer存储过程的转换,需要使用PL/SQL相关语句进行模拟,这一过程中极易造成语义丢失或在结果中出现歧义。   下面以SQLeSrver2000的数据定义语句为例进行转换过程分析,其他语句的转换过程与此类似。   首先给出SQLServer20OO中CREATE PROCEDURE语句简化的上下文无关文法:   ::=   CREATE PROC[EDURE]   [{rameter}[OUTPUT]   ][,…,n]   AS[…n]   ::=    …   下面是Oracle11G中CREATEPROCEDURE语句简化的上下文无关文法:   ::=   CREATE[OR REPLACE] PROCEDURE[.]   [[IN!OUT〕]…   {IS{AS}{}; ::=   l(INSERT STATEMENT) …   根??SQLServer2000的CREATEPROCEDURE语句上下文无关文法可构造实例如下,它是转换程序要进行分析处理的源程序:   CREATE PROCEDURE au_nfo   lastnamevacrhar(40),   firstnamevarehar(20)   AS   SELECT * FROM authors   e=firstname AND au_Iname=lastname   2 设计思路及分析   2.1 存储过程转换设计   存储转换的具体设计中转换的前端部分较之程序设计语言编译程序的前端不尽相同,其主要的意义是借助于对Transact-SQL存储过程源程序的分析,从当中获得具体的语义,再转而用中间结构的形式来将其表达出来。后续部分则是依照中间结构进行目标程序的编写,并且目标程序的应与源程序之间使用同一语义。转换之前为了方便获取存储过程的源程序,需在相关数据库之中得到源数据,以实现存储过程源程序文本的最终获取。实施转换的前期我们要保证依托于源程序的数据库对象已经完成了自身向目标数据库的迁移。整体的存储转换是由一系列的功能模块所构成,功能模块相互间的协作与联系如图l所示。   2.2 词法及语法分析   在存储转换过程中的词法分析又被称之为扫描,其所实现的主要功能全部都可以被语法分析模块进行调用,同时也可作为多遍扫描的第l遍独立运行,词法分析主要主要的功能是针对存储过程源程序进行解析。借助于对源程序中每一个字符的读取,遵照相关规则表达式使它们组合成具有特殊意义的单词,所组合成的单词被称为存储过程源程序的最小有意义语言单位。源程序的最小有意义语言单位可以细分为标志符和关键字、分隔符、常量、

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档