存储过程优缺点:
-
优点:
1)可以执行复杂的业务场景,
2)重复调用,不用重新编译sql,
3) 维护性好,直接改存储过程语句即可 等等
-
缺点:
1)开发调试复杂不方便,
2)可移植性差:在不同数据库平台上迁移时,需要重新调整存储过程的语句,
3)不支持面向对象:无法采用面向对象的方式将业务逻辑进行封装,从而无法形成通用的可支持复用的业务逻辑框架。
踩过的坑:
1. 在存储过程中,循环体中,定义了一个局部变量tmp,select filed1 into tmp from ...时,会存在这样的问题:如果某次循环中,获取到的field1字段的值null, 那么tmp将使用上一次的值返回;
2. 解决方法:定义一个局部变量counts,select filed1 into tmp,count(field1) into counts from ...即可避免上述问题,此时tmp = null, counts = 0