SQLSERVER AND ORACLE

本文详细记录了从SQL Server 2K到Oracle 10g数据库的迁移过程,包括代码扩展、数据导入、数据类型转换及注意事项。特别关注了SQL Server 2K与Oracle 10g之间的数据类型对应关系,以及表名大小写转换问题。

将公司系统从SqlServer 2K移植到Oracle 10g中的简要总结

时间: 2009-01-15 08:34来源: 博客园 阿修罗一平 点击:
 

    公司有一个系统是基于SqlServer 2k,现在,应客户要求,移植到Oracle 10g数据库。代码的扩展极其easy,三下五除二,搞定。就是 在将数据从SqlServer 2k导入到Oracle 10g数据库中时出现了一些问题。刚开始采用的方案是把表结构和数据导入到Sql脚本中,然后在 Oracle数据库中执行Sql脚本。这个过程涉及到数据库字段类型的转换问题,容易出错。后来采用使用SqlServer 2k的DTS 将数据从 SqlServer中导入到Oracle 10g中。工作就这么搞定了,为了方便以后数据类型的转换,方便以后做针对不同数据库的Sql脚本,我把 SqlServer 2k和Oracle 10g大部分数据类型都做了一下测试,当然现在只有SqlServer 2k和Oracle 10g数据对应关 系。不对应关系如下:

SqlServer 2k转换为Oracle 10g

列名SqlServer数据类型SqlServer长度Oracle数据类型
column1bigint8NUMBER(19)
column2binary50RAW(50)
column3bit1NUMBER(2)
column4char10CHAR(10)
column5datetime8DATE
column6decimal9NUMBER(18)
column7float8BINARY_DOUBLE
column8image16BLOB
column9int4NUMBER(10)
column10money8NUMBER(19,4)
column11nchar10NCHAR(10)
column12ntext16NCLOB
column13numeric9NUMBER(18)
column14nvarchar50NVARCHAR2(50)
column15real4BINARY_FLOAT
column16smalldatetime4DATE
column17smallint2NUMBER(5)
column18smallmoney4NUMBER(10,4)
column19sql_variant BLOB
column20text16CLOB
column21timestamp8RAW(8)
column22tinyint1NUMBER(3)
column23uniqueidentifier16BLOB
column24varbinary50RAW(50)
column25varchar50VARCHAR2(50)



Oracle 10g 转换为SqlServer 2k

Oracle列名Oracle数据类型SqlServer列名SqlServer数据类型SqlServer数据长度
COLUMN1BINARY_DOUBLECOLUMN1float8
COLUMN2BINARY_FLOATCOLUMN2real4
COLUMN3BLOBCOLUMN3image16
COLUMN4CLOBCOLUMN4ntext16
COLUMN5CHAR(10)COLUMN5nchar10
COLUMN6DATECOLUMN6datetime8
COLUMN12NUMBERCOLUMN12numeric13
COLUMN13NVARCHAR2(10)COLUMN13nvarchar10
COLUMN14RAW(10)COLUMN14varbinary10
COLUMN15TIMESTAMP(6)COLUMN15datetime8
COLUMN16TIMESTAMP(6) WITH LOCAL TIME ZONECOLUMN16datetime8
COLUMN17TIMESTAMP(6) WITH TIME ZONECOLUMN17datetime8
COLUMN18VARCHAR2(10)COLUMN18nvarchar10
COLUMN7INTERVAL DAY(2) TO SECOND(6)COLUMN7nvarchar30
COLUMN8INTERVAL YEAR(2) TO MONTHCOLUMN8nvarchar14
COLUMN9LONGCOLUMN9ntext16
COLUMN10LONG RAWCOLUMN10image16
COLUMN11NCLOBCOLUMN11ntext


我们在做数据库移植设计的时候,完全DIY,可以考虑设计可扩展组件完成这种数据库表、列等对应关系的转换工作,那么以后再做系统移植中数据导入时就一劳永逸了。现在也没有时间做这种工作,不过感觉这还是挺有意义的一项工作。

在 转换过程中,出现了另一个问题,就是如果SqlServer 2k 中的表名含有小写,那么在导入到Oracle 10g后,需要修改表名,否则Sql语 句会执行失败。(导入后表名多了引号) 比如SqlServer 2k有一个表test,导入到Oracle 10g后显示的表名仍然为test,但是如 果你要查询test表中的数据时,按照正常情况下,你只用输入select * from test即可,可是现在却变成 select * from "test"。通过Oracle 10g的维护系统进入修改表名时,表名显示为带有引号的-"test"。出现这个问题,因 为表不是很多,所以我们将SqlServer 2k的表名都改为了大写,或者在Oracle中将表名改为大写,就ok了,需要注意这些细节。 Oracle 10g导入到SqlServer 2k中没有出现问题。  

【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值