登录  /  注册
首页 > 常见问题 > 正文

oracle与sybase的区别是什么

DDD
发布: 2023-06-01 13:46:24
原创
1278人浏览过

oracle与sybase的区别是:1、sql语法不一致,2、字段超长后处理机制不同,sybase处理机制为自动截断,oracle在输入超长字符时因无自动截断机制,3、中文字段字节长度不一致,sybase数据库1个中文占2个字节,oracle数据库1个中文占3个字节,4、字符类型转换,5、空值读取结果不一致,6、查询语句输出默认排序不一致,7、日期格式不一致。

oracle与sybase的区别是什么

本教程操作系统:Windows10系统、Dell G3电脑。

oracle与sybase的区别是:

(一)SQL语法不一致

1、字符串处理函数不同:例如Sybase为substring(),oracle为substr();取系统时间Oracle为sysdate,Sybase为getdate()。

2、多表联结语法不一样。

(二)字段超长后处理机制不同

超过数据库定义字段长度的输入,Sybase处理机制为自动截断,输入超长字符时交易成功;Oracle在输入超长字符时因无自动截断机制,则交易报错无法成功。这种不同的超长字符输入处理机制导致大量历史异常数据在Sybase成功,在Oracle交易失败。超长字段输入来源包括:(1)主机向系统数据库的输入数据;(2)系统自身页面前端未控制字符长度,输入超长的数据;(3)系统自身程序有超长函数名称,存入日志表报错;(4)关联系统输入超长字段。该差异引发的问题是本次迁移涉及范围最广的问题,涉及改造交易上百个。后针对字段超长的问题,项目讨论后决定重新梳理交易相关字段,补充测试用例,进行专项测试,针对重要外部系统输入的字段逐项对比排查。

(三)中文字段字节长度不一致

Sybase数据库1个中文占2个字节;Oracle数据库1个中文占3个字节,如部分输入字段在数据库迁移前后未对中文字段长度进行扩充,则会出现实际业务不一致的情况。例如:在系统的某个录入页面,第一版测试时,开发未对自定义备注(可输入中文)进行字段长度的扩充,导致自定义备注在数据库迁移前后内容由于超长被覆盖而导致不一致。需重点梳理业务字段及支持输入类型(是否含中文)。

(四)字符类型转换

Sybase和Oracle对于不同字符类别的处理机制不同;以char字符类型处理机制为例,Sybase中历史数据中有长度为1的数据‘6’,迁移到oracle后,取值时为会自动补空格变为‘6’,导致程序逻辑出错。刚开始开发人员在程序中通过trim过滤空格,后统一将char类型修改为varchar类型。

(五)空值读取结果不一致

Sybase和Oracle对于空值的处理机制不同,例如:对于0长度的空值‘’,Sybase存储为长度为1的空格:‘’,后续查询该字段报文时,该字段为长度为1的空格;Oracle则存储为null,后续查询该字段拼报文时,该字段取出为NULL,会少1个字段。

(六)查询语句输出默认排序不一致

例如:明细类交易,两个数据库输出顺序不一致;同时待处理任务输出顺序也不一致。

(七)日期格式不一致

Sybase与Oracle日期处理格式不一致。例如:Oracledatetime格式为to_date(‘2020-05-1012:00:00','yyyy-mm-ddHH24:mi:ss'),Sybasedatetime格式为‘05/10/202012:00:00AM'。

以上就是oracle与sybase的区别是什么的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号