教你在IBM DB2数据库中进行包的重绑定

重绑定是对先前已经与数据库进行了绑定的应用程序重新生成包(Package)的过程。当应用程序对应的包,被标记为不合法(Invalid)或不可操作(InOperative)的时候,用户必须对它进行重绑定。有的情况下,包虽然依然合法,但是用户为了提高程序的运行性能,如利用新的索引,或者在运行完RUNSTATS命令后利用新的系统优化数据,用户也会进行包的重绑定。


如果应用程序的包依赖于某些数据对象,如表,触发器等。当这些数据对象被删除时,包将会被设置为不合法(Invalid)。不合法的包在下一次被执行的时候,会被数据库管理器自动执行重绑定的操作。用户必须注意的是,如果系统自动执行重绑定失败,则程序在执行的时候会产生不可预料的错误。这时候也许程序的语句并没有错误,错误是由重绑定操作失败造成的。


但是如果用户的包依赖的数据对象有用户自定义函数(UDF),则当该UDF被删除后,包会被设置为不可操作(Inoperative)。被设置为不可操作的包,必须要用户手动进行重绑定。


另外当用户希望修改绑定过程的参数时,也需要重新执行绑定命令。


执行重绑定的命令可以是BIND或者REBIND,具体的命令使用方法用户可以参考COMMAND REFERENCE。