数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

ORACLE8I转换数据到SQLSERVER数据库


发布日期:2022年03月10日
 
ORACLE8I转换数据到SQLSERVER数据库

最近做一个项目的DOTNET版说是升级从ASP升为DOTNET可因为项目架构原因数据库得从ORACLE转为SQL SERVER^_|| 之前未使用过ORACLE转换数据过程中碰到了不小的麻烦

这中间过程之痛苦不再赘述直接讲我导数据流程及遇到的问题如有讲错的地方请大家指教~~

前提 因为我是从ORACLE数据库服务器导出到目的机器所以首先在目的机器上安装ORACLE同一版本的客户端这样做是为了在用MSSQL导入数据时能选择ORACLE数据源接下来我做的这个动作不知是否是必须的ORACLE程序菜单中>net manage增加一个服务命名填入源机器所在ORACLE库服务名主机名

在目的机器上安装了PL/SQL Devloper 填入登录源数据库的用户名密码选择数据库登入OK这步主要查看ORACLE数据库为了知道哪些表或其它元素需要导出并作参考

具体工作来了

()表如果只需要导出表结构用PL/SQL Devloper >Tools >Export Tables选择表填入文件名导出

存储过程视图函数用PL/SQL Devloper >Tools >Export User Objects 选择对象填入文件名导出

()以上SQL文件导完因PLSQL和SQL的些许不同花了点心思把它们改成SQLSERVER上可以执行的语句在MSSQL的查询分析器中执行生成

()导出表结构及数据在目的机器上数据源管理器中新建一个系统DSN或文件DSN选择ORACLE ODBC DRIVER 数据源名称和说明随便填服务名及用户ID填ORACLE源数据库相应的服务名 然后运行MSSQL >导入导出工具>选择源数据中选择其它(ODBC数据源)选择刚才建的系统DSN或文件DSN填入登录ORACLE库的用户名密码进入接下来的选择目标源动作就和MSSQL自己的导入数据操作是一样了导完之后记得更改相应的字段类型默认值等等

ORACLE到SQLSERVER需要注意的有

()表中字段类型的变化number 变为floatvarchar变为varchar

()ORACLE中没有设置自增字段有需要用到时它是在sequence中建一个sequence所以得查找ORACLE表中是否有这种对应从而在MSSQL中设置自增字段

()在导出表结构及数据中碰到了个问题选择数据源时我选中了系统DSN填入用户名密码点下一步时弹出了个错误窗口提示ocidll找不到指定的模块点确定后提示用户名密码错误上网搜索了N久才找出解决方法()ORACLEi以上Net Manager>本地>概要文件>ORACLE高级安全性>验证>去掉NTS这一项(因为我使用的是ORACLEI所以没试过这方法但网上作者说可以)() 在ORACLE安装目录下搜索到Sqlnetora文件加入一行: sqlnetauthenticationservices=(none)保存重启机器再试下从MSSQL导入导出工具连接源机器OK

至此ORACLE转MSSQL的工作大部分就完成了希望对大家有点帮助欢迎回贴指点错误及另好的方法

上一篇:Oracle性能调整的十大要点

下一篇:Oracle中序列sequence用法