暂无图片
去o,本来package里做的处理,有什么替代方案吗?
我来答
分享
zwy2008
2022-01-11
去o,本来package里做的处理,有什么替代方案吗?

去o,本来package里做的处理,有什么替代方案吗?

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
文成

其他关系型数据库也有存储过程的方案,当然,最好是把程序逻辑包装到外部程序中,这样以后维护处理方便些。
oracle迁移到pg全流程

暂无图片 评论
暂无图片 有用 1
秦超峰

不建议在使用package,跟楼上建议一样,把逻辑包装到外部程序中,曾经维护过上万行的package,太痛苦了

暂无图片 评论
暂无图片 有用 0
DarkAthena

目前国产的达梦、openGauss等数据库,支持create package语法。我实测将以前我以前在oracle中开发的部分package代码直接打在达梦或者openGauss数据库(2.1.0版本dbcompatibility=A)上,可以正常调用。

但是,这并不代表绝对兼容,因为ORACLE支持的语法太丰富了,要完全移植只能见招拆招,发现不支持的就只能用目标数据库的原生语法及函数去改。

而且,在编写oracle的过程时(含包、函数、过程),经常会使用到oracle系统自带的plsql工具包,目前这玩意也有好几百个,经常用于开发的也有好几十个,目前国内有不少数据库厂商在国产数据库上开发了其中一部分包,最多支持的也有二十多个包了。但很多包并没有在算法上进行优化,纯粹的只是为了去兼容,用逻辑模拟了一个相同的效果而已

使用package的优点就是程序简单且性能高效,方便维护及调试。作为一个经常写代码的,我宁愿把逻辑都放到数据库里,因为这样可控性更强,有什么问题都能很快查出来,尤其是逻辑特别复杂的那种。走外部程序封装逻辑再和数据库交互,查问题就很麻烦,光要定位问题是在数据库还是在外部程序就要花好长时间了。

但是package放到国产数据库里用,这些优点就不一定还存在了。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏