热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

SqlServer到Oracle数据库转换手记-mysql教程

最近做了些数据库转换工作,主要是从SqlServer转换到Oracle,过程中遇到很多问题,现进行一个小小总结,方便有同样需求的朋友们。需要对数据库结构、数据、自定义函数、存储过程等数据库元素进行转换,由于SqlServer和Oracle数据库语言本身的差异非常大,

最近做了些数据库转换工作,主要是从Sql Server转换到Oracle,过程中遇到很多问题,现进行一个小小总结,方便有同样需求的朋友们。 需要对数据库结构、数据、自定义函数、存储过程等数据库元素进行转换,由于Sql Server和Oracle数据库语言本身的差异非常大,

最近做了些数据库转换工作,主要是从Sql Server转换到Oracle,过程中遇到很多问题,现进行一个小小总结,方便有同样需求的朋友们。

需要对数据库结构、数据、自定义函数、存储过程等数据库元素进行转换,由于Sql Server和Oracle数据库语言本身的差异非常大,所以自定义函数和存储过程的转换是比较困难的一件事情,市面上也很少有这方面的工具,几乎都想直接写工具了,后来却找到了个国外的一个叫做“SwissSQL-SQL Server To Oracle”这样的工具,此工具可以在http://www.swissql.com/站点上下载,使用方法有两种,一种是转换TSQL脚本到PLSQL,一种是通过JDBC连接到SQLServer数据库进行转换,转换后的结果都保存为PLSQL脚本,要导入Oracle需要运行这些脚本。此软件是用Java语言编写在安装之前必须先安装JDK,在试用过程中发现此工具存在这么几个问题:

1、此工具在转换数据结构的过程中把varchar的数据类型都转换成varchar2(1)了而不管原谅数据有多长统一都转换成1个长度,我不知道这么简单的BUG有没有其他设置的地方,反正后来我们没用它转数据结构也就没怎么研究了。

2、此工具为试用版本,我们也没找到注册版,而试用版只能前后转换共2000行SQL语句,而要购买这个软件也不太实际,费用高不说,还是外国的买起来也麻烦,软件为转换这么几个存储过程去耗费这么大的资金在我们这些用盗版的人看来是不可取的,我们的数据库对象那么多,显然这是不好办的问题,那么能否用欺骗的手法蒙混过关呢?下面就是具体的欺骗手法了:
-记得以前用过一个软件叫着“完美卸载”此软件可以记录安装程序时对磁盘进行的更改,有了这个我们就可以安装软件的时候记录好此软件对磁盘所写入的文件,看看有什么异样这样我们就能理解共享软件在那个文件写入了注册信息。
-通过跟踪发现在安装软件的时候,安装程序除了对安装目录写入信息和少量的注册表信息外没有对磁盘做任何更改,别急,我们继续跟踪,跟踪到第一次运行软件的时候,就有了异样,发现此软件在Windows目录下写入了这个文件,赶忙备份此文件,转换了几行语句后,关闭软件,果然此文件再次被修改,这就说明很有可能此文件就是记录的软件试用的行数。当我们第二次使用的时候把备份的文件覆盖了原文件,但此事软件所有按钮都禁用了,说明软件还有其他的地方可以判断用户是否使用过软件。重新安装软件(其实就是把安装目录里的文件重置一下),结果又可以使用2000行了。这就是软件欺骗的全部过程,也是可当作破解软件的土办法,只是麻烦一点的是需要先备份安装目录和那个dll文件,注意那个dll文件不能通用,必须要程序生成的本机的dll文件。当快要用完试用行数的时候通过覆盖文件的方式欺骗软件,从而可以继续试用,就这么简单。

另外在转换数据库的过程中应该还要注意以下几个问题:
-在Oracle数据库中命名不能大于30个英文字符,无论是表名、存储过程名等等,统统不能大于30个字符。
-在Oracle数据库中,存储过程的定义更侠义一些,而不像SqlServer那样开放。特别像返回结果集这些操作上存在很多差异,在SQLServer可以直接试用select语句返回结果集,而Oracle只能把存储过程封装到包中设置Out参数的Cursor数据类型来达到返回结果集的目的,在存储过程内部不能直接试用Select语句返回结果集,很是不便。
-在使用单纯的SQL语句的时候,如果是多条语句,调用Oracle数据库就必须封装在begin/end语句块中。
-手动对Oracle数据库查询时可以选用PL/SQL Developer这个工具,蛮好用的。

推荐阅读
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • Valve 发布 Steam Deck 的新版 Windows 驱动程序
    Valve 最新发布了针对 Steam Deck 掌机的 Windows 驱动程序,旨在提升其在 Windows 环境下的兼容性、安全性和性能表现。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 在 Windows 10 中,F1 至 F12 键默认设置为快捷功能键。本文将介绍几种有效方法来禁用这些快捷键,并恢复其标准功能键的作用。请注意,部分笔记本电脑的快捷键可能无法完全关闭。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • CSS 布局:液态三栏混合宽度布局
    本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
author-avatar
伊金芳60442
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有