设为首页 收藏本站
查看: 1250|回复: 0

[经验分享] 再次开刷IBM的垃圾

[复制链接]

尚未签到

发表于 2017-5-25 11:23:01 | 显示全部楼层 |阅读模式
最近因为公司项目需要,必须使用DB2,因为原来一起用Oracle MySQL的,使用了DB2才知道什么叫数据库中的垃圾,而且是臭气熏天的垃圾!
罪状之1:更改表结构超级麻烦
假设有以下一个表:

create table t1(a int,b int c int,d int);

你希望删除b,c,d新增e,f

alter table t1 drop column b;
alter table t1 drop column c;
alter table t1 drop column d;
alter table t1 add e int;
alter table t1 add f int;

   这是一个再简单不过的表结构更改语句了,在DB2中一执行,到第4行居然就报错了,错误是:
引用
SQL20054N  所处的状态对该操作无效.原因码 23

   查了http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.messages.sql.doc/doc/msql20054n.html?cp=SSEPGG_9.7.0%2F2-6-27-19-45&lang=zh-cn
   才知道,DB2拥有一个如果恶心的限制:
引用

    对表结构更改最多只能做3次,3次后必须要求你执行reorg命令!!!


   也就是说,你必须在第3和第4句之间手工加入:

alter table t1 drop column b;
alter table t1 drop column c;
alter table t1 drop column d;
reorg table t1;/*这里要你手工插入*/
alter table t1 add e int;
alter table t1 add f int;
reorg table t1;/*为了防止后续的更改出错,全体变更完成后,你还要在这里手工插入*/


    这种完全可以由DB2自己内部去做的事情,居然要踢给用户手工去做,完全不顾使用者的感受,学院主义,官僚主义暴露无遗啊!

罪状之2:数据分页
mysql直接使用limit x,y 就可以实现分页了:
select * from table limit 10,20

Oracle通过子查询实现分页:

select * from (select rownum,name from table where rownum <=endIndex ) where rownum > startIndex


下面再来看看DB2的分页:

select * from ( select ROW_NUMBER() OVER( ORDER BY DOC_UUID DESC ) AS ROWNUM,t.*  
from DT_DOCUMENT  t ) a


    看到那串神奇的ROW_NUMBER() OVER( ORDER BY DOC_UUID DESC )没有,如果你需要按序排序,DB2要求你写这个奇怪的语法。想想将一个普通的SQL转换为分页的SQL有多难啊。(幸亏Hibernate的Dialect类可以帮忙我们完成,否则会吐血三升而亡的 DSC0000.gif
DB2的罪状,还很多啦,后续不断补充上,很欢迎大家涮涮IBM那一群群头上长角,浑身长刺的怪胎。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-380919-1-1.html 上篇帖子: IBM企业整合服务解决方案-SOA 下篇帖子: 从 IBM® Workplace Web Content Management™ 应用程序触发操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表