标题：从Oracle到DB2开发：从容转身
图书信息
舞动DB2系列 
从Oracle到DB2开发——从容转身

内容简介
本书是“舞动DB2”系列的第二本，分为三大部分，共8章。第一部分从开发者遇到的问题进行分析，提出在Oracle兼容模式下开发数据应用的新思路，并讲述了从Oracle迁移到DB2的方法、工具及案例。第二部分讲述了DB2开发工具方面的知识，以及如何更有效地开发存储过程、用户自定义函数和触发器。第三部分讲述了开发者在Java EE和.NET架构下开发数据应用的最佳实践。同时，在附录A中，针对SQL PL与PL/SQL做了集中对比，对快速掌握两者异同是大有裨益的。
本书目标读者群主要针对以下人员：从Oracle向DB2转型的技术人员；DB2应用开发工程师；Oracle应用开发工程师；数据库应用架构师；学习DB2数据库开发技术的高校学生或者从事相关课程教学的教师。
作者简介
王飞鹏
       DB2资深顾问，国内首屈一指的数据库开发、维护、优化和架构专家。曾为电信、银行、中央部委、中国高铁等大型数据库项目做出了重要贡献。发表数据库论文12篇，拥有软件专利3项。每年通过大量咨询、讲座、培训等方式，为数据库人才更好地运用数据库技术做出了最大的努力。
李玉明
       DB2数据库资深软件工程师。多年来一直从事DB2内核编译器和优化器的开发工作。
擅长DB2应用系统的架构和开发、大型数据库性能优化，对DB2存储过程的开发和内部运行机制有很深的造诣。曾发表多篇数据库技术论文，拥有IBM DB2各项认证。
李睿明
DB2数据库专家。曾发表过多篇信息系统相关论文和技术文献。目前在IBM中国开发中心从事集成数据管理和信息安全产品线的技术支持工作，拥有IBM DB2数据库各项认证。精于数据库开发技术，具有丰富的DB2应用项目经验。
成孜论
数据库资深顾问。曾为荷兰银行（香港）系统数据库技术顾问、KDDI通信数据库咨询师。近年参与组织了多项金融、高铁、电信等大型数据库工程。现受聘为中国大陆某金融机构数据库资深顾问。
业内热评
本书完美诠释了从Oracle到DB2开发的最佳实践，作者团队具有丰富的从Oracle向DB2迁移实施经验，他们的书一定能带领广大的读者实现华丽的从容转身。
——IBM中国开发中心信息管理产品开发部   总经理   朱辉
本书的作者都有非常丰富的数据库管理和应用开发经验，使得本书具有极佳的实践性和可操作性，相信能为广大的数据库应用开发者提供前所未有的帮助。
——IBM中国开发中心信息管理产品开发部   资深经理   孙冰江
拜读本书后，我感叹作者“看问题眼光准、撰技术功底深、真功夫下得狠”，也为读者能获如此宝鉴而欣喜若狂，学习起来更可以说是“朝读此书日行千里，暮执本卷夜过八河”。对于广大读者来讲，在本书里大可畅游其中，揣摩知识技巧，学习品味技术人生。
——中国工商银行科技部   高级顾问   李伟
序 一
Be prepared to change everything about itself except those beliefs.
当IBM董事长Sam Palmisano说到这句话时，他正站在庆祝清华大学百年华诞的演讲台上，与莘莘学子分享同样正值百岁生日的IBM是如何通过不断的改变来塑造一个伟大的公司的。
从制表机、打字机，到磁盘驱动器、内存芯片、自动取款机，再到大型机、个人电脑，直到今年推出的惊世之作——“沃森”计算机系统，每次改变都使信息技术有划时代的飞跃。
作为IBM最为重要的数据管理软件，DB2本身也在不断地改变着。自DB2 V9.7开始，DB2开始支持Oracle兼容特性，这使得Oracle数据库的迁移周期大为缩减，迁移成本大为降低。为了适应市场需要，2011年5月，IBM正式在中国成立了数据库迁移咨询服务中心（IBM Database Migration Consulting Service Center），其使命是为客户提供安全、高效的迁移服务。在今年第一季度，全球就有210例客户将自身的Oracle数据库成功迁移到DB2上，涉及金融、电信、政府、能源、烟草等行业。其中一个典型案例是，全球最大的饮料生产商可口可乐公司告别Oracle并转而使用DB2，从而成功使得其ERP应用获得更高性能，软硬件成本显著降低，企业竞争力明显提高。
本书完美诠释了从Oracle到DB2开发的最佳实践，作者团队由来自IBM数据库迁移咨询服务中心的资深专家组成，具有丰富的从Oracle向DB2迁移的实施经验，他们的书一定能带领广大的读者实现华丽的从容转身。
在大洋彼岸，Luis A. Lamassonne，105岁的前IBM员工，在对媒体描述他是如何为这家伟大的公司奋斗了38年的时候，他说：“是的，改变使这里的一切皆有可能，这就是IBM。”
IBM中国开发中心信息管理产品开发部
总经理 朱辉           
2011年10月9日写于北京
序 二
IBM百年华诞，在2011年夺目九界，璀璨全球。创新，这是IBM能屹立于强手如林的科技界的关键，使得她能够适应科技时代发展的需要，不断创新求变，从而把握时代的脉搏，解决今天及未来企业遇到或可能遇到的重大挑战。
进入21世纪，IBM与其众多对手们不约而同地投入到了信息时代的竞争。随着信息技术的迅猛发展，作为其核心组成部分的数据之战已成为21世纪“竞争”的新内涵，而作为承载、处理和加工这些数据的数据库软件行业就不可避免地成为主战场。
为了满足客户各种需求，大家竞争的对象是极富生命力的数据。在数据的整个生命历程中，它会经历设计、开发、部署、运营、优化和治理的不同阶段。这不是一次性的过程，而是通过迭代式的周期，以发挥数据更大的价值。当任何一家企业拥有了对数据强大的管控和支配后，就会在21世纪数据之战中立于不败地位，甚至引领信息时代的发展。
IBM 正在着手实现一个战略计划，提供一个集成的模块化数据管理环境，帮助企业更高效、准确地管理整个数据生命周期（从需求到报废）。我们将这个过程称为“集成数据管理”，管理数据生命周期的每个环节，并能够支持各种主流厂商提供的数据管理技术，包括DB2、Informix、Oracle等。
本书中提到的IBM Data Studio，就是应运而生的这样一个工具集，它除了提供对数据库基本的管理功能外，还为数据库应用开发者提供了强大的跨平台的应用开发能力，无论你是DB2爱好者，还是Oracle的粉丝，都会从中获益。IBM Data Studio最大的优势就在于对DB2数据库全面的支持，能够及时地反映并紧跟DB2数据库的发展和更新，同时提供对PL/SQL Package开发的支持。
本书的作者都有非常丰富的数据库管理和应用开发经验，这使本书具有极佳的实践性和可操作性，相信它能为广大的数据库应用开发者提供前所未有的帮助。
IBM中国开发中心信息管理产品开发部
资深经理 孙冰江        
2011年9月20日写于北京      
序 三
读书是一门大学问，读谁的书？怎么读书？如何书以致用？这些问题可是这门学问中的精髓。倘若读DB2的书，那么“舞动DB2”系列则是必选，因为在数据库界这个系列的每一本书可谓坛坛都是好酒。本人有幸为其中的应用开发篇作序，心中一则以喜，一则以惧。心喜的是数据库应用开发人员的春天来临了，因为终于有一本DB2开发的绝世之作诞生；心惧的是DB2开发的书籍如此之稀缺，不知何年何月才能有更多的精品在图书领域形成规模，以飨众多读者之渴求。
拜读本书后，我感叹四位作者“看问题眼光准、撰技术功底深、真功夫下得狠”。在书的封面上“从容转身”几个大字，就向读者透露了本书的气概，纵横全书。翻到目录时，便感觉内容安排错落有致，井井有条；读到第1章“我看DB2开发”，大有一观天下的气魄；第2章中，作者将Oracle与DB2做了对比，娓娓道来，条分缕析；第3章涉及工具选择的方方面面，匠心独运，细致入微；第4～6章，服务器端开发技术的巧夺天工让我们领略到DB2的“志存高远”；而第7、8章则从客户端开发技术的角度，精彩展现了为什么DB2不愧为IBM最地地道道的工具。更令人叹为观止的是，本书以精彩絮言的方式，按时间顺序，把每一章内容巧妙地建成了一个驿站，给一路“奔波”的读者们留了个歇脚儿的地儿，来学习技术、品味人生、感慨天下。我不得不为如此奇妙的写作设计拍案叫绝，也为读者能获如此宝鉴而欣喜若狂。本书学习起来真可以说是“朝读此书日行千里，暮执本卷夜过八河”。
这本书即将出版，我由衷地向本书作者致以崇高的敬意。在两年来的写作过程中，王飞鹏意志坚定、步伐稳健，在数据库这片天地执着、勤奋地向广大技术人员传播经验、传授技巧；李玉明学风严谨，数据库开发技艺精湛，其代码的功力足可以与日月争辉；李睿明天资聪颖，极善于为读者挖掘学习DB2开发的捷径；成孜论学识渊博，文笔翩翩，这位业界奇才是本书质量的重要基石……四位作者优势互补，并肩奋斗，突破重重阻力，终于完成这一大作，给开发者们带来了福音！这本书填补了数据库界的多项空白，我相信其打破多项纪录指日可待。而对于广大读者来讲，大可在本书中自在畅游，揣摩知识技巧，品味技术人生。
中国工商银行科技部 高级顾问 李伟
2011年10月10日写于珠海   
前 言
舞动DB2前传
缘起在IBM百年华诞这一年，有IT媒体给我贴上了多个标签：有人说王飞鹏是“DB2第一高手”，有人说在数据库领域，王飞鹏是当今最活跃、最富个性的技术领袖。看来，随着“舞动DB2”系列的陆续上市，今后还会给我贴上更多的标签。无论如何，我想有必要把我编写这个系列的使命感和推动力写出来，那么就先从我的经历谈起吧。
这需要将时光倒流10年，从9·11事件说起。那一年，我读大四，正逢大批海归学成归国。我与两位海归创立了宝华研究社，我们研究的题目不是反恐，而是在美国遭到重创之际，中国IT业如何夺得世界第一的伟大目标。不过，当时瘦得可以被风吹倒的我，没多久便意识到，所选的题目太过宏大，短期内难以实现。尽管没有成功，但是宝华研究社得以保留，这是我与志同道合之人探秘未来世界的第一次尝试。
后来在读研期间，我通读了Linux源代码，MySQL源代码，并且在实验室的电脑上反复操练。有意思的是，我的导师当时对我的评价是“七分正，三分邪，常做出情理之中，意料之外的事”。还好，他很欣赏我在开源软件使用上的一些想法，所以鼓励我组建“开源软件学习会”，从此如鱼得水。于是我开始了第二次尝试，也在探寻如何获得号召力，没想到在短短5周内，便聚集了30多位开源软件发烧友，一起切磋技术。做了这些还不够，我又开始组织几位冒尖的同学和会员尝试进行商业运作，这在学校引起了轰动。
“青涩”的团队成立了，一起开发电信增值业务。开始的时候，大家都建议开发测试完就收取开发服务费用，而我艰难地说服大家采取和电信服务开发商赢利分成的方式来合作。最后，大家发现这种分歧已经上升到世界观与商业眼光的层次上了。不过，大伙儿被我的坚定打动了，于是十几个“青瓜蛋子”硬着头皮跟着我走上了高风险、高收益的路。我们用3个月的时间完成了开发、测试和部署工作，随之也收获颇丰。上线后第一个月，分成8万；第二个月，分成19万；第三个月，分成31万。在赢利的分配上，我采用的方式很简单：平均分配。通过这件事，我曾总结过经验，也明白了些许道理：干大事必须要有过人的胸怀和胆识，处乱需不惊，遇事稳住神。特别重要的是，有时真理确实掌握在少数人手里。
毕业那一年，同学们都在忙着面试找工作，而我正被乔布斯在斯坦福的演讲“Stay hungry, stay foolish”而鼓动得热血沸腾。我的山西老乡李彦宏告诉年轻人要追求创新，也让我激动不已。我脑袋里的问号不停地翻滚，哪里才是创新的天堂呢？最终我被“蓝色巨人”的诱惑吸引去了。
我加入了IBM的DB2研发部门。那里着实是一所大学，提供了非常好的学习和工作环境。在研发实验室，除了可以和高素质的同事一起工作外，还能向加拿大的老专家学习第一手技术，提升技术素养。磨炼了一段时间，我在创新上迈出了人生的一小步：发表了数篇论文、获得了专利、出版了数据库系列著作。这些成绩让周围的朋友们眼花缭乱，不过，每当我看到同样出自山西小镇，独自闯荡大城市的李彦宏的成就，就激励我尝试在更广阔的平台上实现自己的价值。
30多年前，IBM研究人员E.F.Codd发表了一篇划时代的论文“关系数据库理论模型”，介绍了关系数据库理论和查询语言SQL。据说，Oracle董事长Larry Allison看完后，被其内容震惊，随后敏锐意识到在这个研究基础上可以开发商用软件系统，并立刻着手推出关系数据库产品。直到1985年，IBM才发布了关系数据库DB2，而Larry Allison那时已经成为千万富翁。这个故事对我从工程师到咨询顾问的转型影响很大。 
IBM公司的咨询顾问大多数都能言善辩，这让还带有地方口音的我在加入IBM之初备感压力。有段时间我每天对着镜子苦练口才，不过那时，我还不敢想象自己真有一天能在成百上千人面前发表演讲。
成为咨询顾问之后，我发现当今的数据库市场格局已是Oracle和DB2双雄鼎立的局面，而且竞争越来越激烈。我坚信好钢应该被用在刀刃上。为了在与Oracle的竞争中取得突破，我整天飞来飞去，始终活跃在业务第一线。我写这段文字时，人还在成都，上一周我在杭州，下周我会在北京和IBM王云院士在BAO大会上与广大DB2用户见面。
“读万卷书，不如行万里路”，终于有一天，我明白了自己归结起来就是在做三件事：做实施、做咨询、做培训。
第一件事：做实施。我服务的客户大多都是关系国计民生的行业领军单位，项目牵涉范围广，难度大，工期紧。曾经在华东地区某电信公司的项目中，多个实施单位之间分歧严重，进度迟缓。IBM一个兄弟实施团队无力回天，铩羽而归。紧急关头，我被派去救火。到了现场我先着手理清问题的来龙去脉，随后说服客户和IBM合作伙伴确定新的实施方案。我带领的这支队伍，经历了3周的艰苦奋战，最后力挽狂澜，取得了圆满成功。这种类似的经历只是众多案例之一，当我停下脚步回眸一看，工作中留下的脚印在不断延伸：
华东某电信公司
华中某移动公司
中国某大型银行
中央某部委
华中某地铁公司
中国某大型钢铁公司
……
在这些项目实施的经历中，我也学会了如何识人用人。我把人才分为三种：第一种是能自己成事的干将之才；第二种是可以带领一批人成事，具有领导力的大将之才；第三种是具有前瞻眼光，有战略高度，能审时度势、运筹帷幄的统帅之才。
再看我做的第二件事：做咨询。我做过技术咨询，还为高端客户提供过业务咨询和架构咨询。我喜欢的咨询风格是，给客户以整体解决方案和实施路线图，既能让客户把控项目整体规划，也明确具体的实施过程，同时合理调配团队资源。例如在华中某高铁公司，我带领团队为客户量身定制了一套高铁信息化建设的整体解决方案，其中有客户最关心的高可用方案、负载均衡、安全机制、风险管理、团队规划和技术构架演进路线图等。这种咨询方式有效地提升了客户的信息化建设水平，从而赢得了客户的青睐。
我在做咨询顾问期间，常与售前团队一起合作，一起分析业务，一起制定方案。在相互合作的过程中，我总结了“降龙十策”，作为售前团队的行动指南，这其中所需的非比寻常的洞察力和领悟能力是我向业界前辈不断学习与汲取而获得的。
1．决心重于实力。既然决定出手，就要有必胜之决心，同时需具备敏锐的洞察力和迅猛的执行力。在与客户会面交谈的头30分钟至为关键，这是决定成败的重要因素，争取在头30分钟内解决，后面都是补充和完善。
2．在拜见客户前，从销售代表那里充分了解历史拜访记录，不仅包括我方的，最好也包括竞争对手的，因为这些都会影响客户的选择倾向。知己知彼，方能制定正确对策。
3．品牌就是说服力，不同水平的人给客户讲授相同的话题，客户的接受程度会相差万里！
4．给客户介绍产品，是最傻的办法；对客户所提出的问题，面面俱到给予解答，是最笨的办法；实战表明，给客户讲成功案例和项目经验是最好的办法。
5．在客户面前，空谈方案和计划是没有意义的，一定要善于发掘客户的潜在需求，展现自己的独特价值。例如，帮助客户降低总体拥有成本，帮助客户明确IT建设的长期愿景等。这是我们成功的关键。
6．了解销售人员的苦痛有时候比了解客户的苦痛更重要，从技术上去帮助销售人员突破商务上的瓶颈，这需要魄力！
7．客户的苦痛要分级，通常时间非常紧迫，优先在短时间内解决客户的燃眉之急并且对我们来说却是举手之劳的事情，这样带来的好处是赢得客户信赖，为后续打开局面奠定坚实的基础。
8．给驻扎客户现场的人员一定的授权，用来随机应变，但涉及重大决定或重要承诺时，需要邀请高级领导到场洽谈，来赢得客户信任。
9．在客户的各级领导面前讲话要慎重，最好在我方销售人员的陪同下，只谈论已经确定下来的事情。道理很简单，客户不同层面人员之间大多数有分歧。
10．领导力是通过实战来检验的。领导力不神秘，就是能凝聚团队，带领队伍打赢硬仗的能力。我们的风格是跨团队合作，这就需要一个领军者来组织和协调各种资源，使得团队齐心协力，目标一致，取得胜利。避免出现有功争抢，有难拆台的局面。
有前面两件事的基础，第三件事“做培训”水到渠成，因为，我发现丰富的实施经验和大量的咨询案例，为培训提供了一种先天的优势。国内大部分数据库技术培训的现状是填鸭式的快速培训，培训材料都是原厂英文资料，实验甚少，案例缺乏。我希望提供出众的培训，遂开始编写中文课件，课件中融入了多年的实战技巧和经验总结，力争思路清晰，可操作性强。仅在最近的9个月内我已为超过3200多名用户培训过DB2。特别值得一提的是，我在为重点客户规划技术成长蓝图方面下了不小的功夫，从而可以帮助其数据库技术人员从广度和深度上同时提升技术素养。
总而言之，这三件事都是我日常工作的缩影。数年前，我的目标是成为IBM公司“DB2第一高手”，而如今，我更希望能与“宝华咨询”团队为数据库生态系统的繁荣作出更大的贡献。
我们在实战中付出了巨大的艰辛，意志经受住了重重考验，历经千锤百炼。我对成为一名数据库技术的传道者乐此不疲，一直在将所思所想、所学所得分享给中国广大的数据库工作者。从2009年开始，我们写作团队投入到“舞动DB2”系列的编写当中，呕心沥血，锲而不舍，历经三载打造经典之作。
“长风破浪会有时，直挂云帆济沧海”，借此希望每一位从事数据库工作的奋斗者，不断进步，超越自我，最终实现我们在“舞动DB2”系列中所倡导的：真正看清自己，看清世界，看清未来！
本书结构本书是“舞动DB2”系列的第二本，从内容来看，本书共分为三大部分，共8章。第一部分从开发者遇到的问题进行分析，提出在Oracle兼容模式下开发数据应用的新思路，并讲述了从Oracle迁移到DB2的方法、工具及案例。第二部分讲述了DB2开发工具方面的知识，以及如何更有效地开发存储过程、用户自定义函数和触发器。第三部分讲述了开发者在Java EE和.NET架构下开发数据应用的最佳实践。同时，在附录A中，针对SQL PL与PL/SQL做了集中对比，对快速掌握两者异同是大有裨益的。
为了帮助广大的中国读者实现从Oracle向DB2转型，本书深入浅出地回答了下面问题：
1．在兼容和非兼容模式下DB2应用开发的新思路；
2．在非兼容模式下，如何使用SQL PL语言高效地编写应用；
3．在兼容模式下，如何使用PL/SQL语言更好地开发数据应用，例如存储过程、用户自定义函数等；
4．如何选择DB2数据应用开发工具；
5．Java EE和.NET架构下应用开发的最佳实践。
最后，本书还提供了精彩絮言部分。所谓精彩絮言，意指DB2开发工作、生活中的精彩花絮和警醒箴言，其中凝聚了我们从事开发的工作经验，也丰富了我们这本书的指导思想。在每章后面都有这个环节，其文环环相扣，贯穿全书。
读者对象如果你学习数据库知识仅一个月，本书可能不是最适合你的。三年前一位来自IBM多伦多实验室的数据库大师曾告诫我：你不要指望一本书可以兼顾入门者和专业者，你更不要做这样的事情。本书目标读者群主要针对以下人员：
1．从Oracle向DB2转型的技术人员；
2．DB2应用开发工程师；
3．Oracle应用开发工程师；
4．数据库应用架构师；
5．学习DB2数据库开发技术的高校学生或者从事相关课程教学的教师。
本书涵盖哪些版本本书中绝大多数概念适用于包括DB2 V8 for LUW以来的所有版本。但不可避免的是，我们讨论到的某些特性只是针对特定版本的。具体如下：
DB2的Oracle兼容特性（第1章）：适用于DB2 V9.7及其以后版本。
表分区和MDC特性（第2章）：适用于DB2 V9及其以后版本。
Data Studio对PL/SQL开发的支持（第3章）：适用于DB2 V9.7及其以后版本。
TOAD for DB2对PL/SQL开发的支持（第3章）：适用于DB2 V9.7及其以后版本。
pureXML数据库设计（第4章）：适用于DB2 V9及其以后版本。
如果没有特别指明某特性只针对某个版本，默认对所有版本都适用。
在线资源可以从下载本书案例中用到的文件，也可从该网站上找到本书最新的补遗及勘误。同时也欢迎大家到网站相互交流和学习。
致 谢首先感谢电子工业出版社的高洪霞编辑，她在“舞动DB2”系列图书出版过程中给予了我们大力支持和帮助！对IBM中国软件开发中心刘慎锋经理的热心帮助，在此表示衷心感谢。感谢聂花梅在待产期间，还为本书审阅了部分章节，这给予了写作团队莫大的鼓励。感谢郜中华身在法国期间还坚持审稿，这给予了写作团队极大的支持。同时，本书在审稿中还得到了IBM中国开发中心资深软件工程师朱志辉的热心帮助，他细心阅读了全书，并给出了非常专业的建议，在此表示衷心感谢。感谢IBM中国开发中心软件工程师万蒙，他审核了本书大部分章节并提出了宝贵建议；感谢秦怡，她在繁忙的工作之余审核了所有章节的引言和案例部分，并提供了非常重要的建议；感谢所有参与本书审核的同事们，张慧、张金竹和侯战友。
王飞鹏      
2011年10月写于硅谷
目 录
第1章  我看DB2应用开发 1
第2章  当Oracle开发者遇到DB2 23
第3章  DB2应用开发工具大观 56
第4章  SQL PL开发DB2服务器端应用 94
第5章  PL/SQL开发DB2服务器端应用 170
第6章  Java存储过程 226
第7章  Java EE平台下开发DB2 280
第8章  .NET平台下开发DB2应用程序 330
附录A  SQL PL与PL/SQL比较 380
附录B  缩略语释义 395
后记 403
参考文献 405