SQL Server与Oracle对比:package

开发人员关注的数据库特性

作为一个开发人员而不是DBA我们对数据库关注的侧重点肯定不一样.我们不太需要知道备份,配置,优化,维护数据库.我们关注的是应用程序中需要的数据是怎么保存在数据库中的(被保存成一个个的表),以及怎么存储读取表中数据,表自然也是数据库最最重要的东东了.当然为了更好的操作表中的数据,保证数据的完整性.又衍生出些其他功能机制.比如trigger(触发器),function(函数),stored procedure(存储过程).实现这三个功能又需要用到扩展的sql语句. 另外还有啥view(视图),synonym(同义词).上面提到的这些东东就是开发人员关注的东东,当然如果要关注性能,想优化sql还得知道像啥执行计划,trace文件之类跟性能相关的一些东东.

Package(包)

function和stored procedure实际上就跟我们写代码中用到的一个个函数是一样的,只不过stored procedure是没有返回值的函数,相当前面带个void的函数.

在面向过程的编程语言如C中,放眼望去是一堆堆的函数,如果数量一多显得有点杂乱无章.如果在面向对象的语言中就很好办,用个类可以把很多函数打包起来,oracle中有个叫package的东东,就类似于类,可以把很多function与stored procedure打包放一起. 但是sql server中没有package这东东.如果实在觉得function多了太乱了可以把某一类function放到某个schema下面,用schema来模拟下类似的功能.

标签