【问题标题】:Replace a routine declared in a DB2 module替换在 DB2 模块中声明的例程
【发布时间】:2012-10-05 02:06:41
【问题描述】:

我正在使用 SQL PL 在 DB2 中开发一个应用程序,并且正在一个模块中定义例程(过程和函数)。

但是,每次更改例程时,我都无法替换它,我必须删除模块主体,然后重新创建。

有没有办法为模块内的例程执行替换?

【问题讨论】:

  • 所以CREATE OR REPLACE PROCEDURE... 在模块中不起作用?
  • 不,它不起作用,因为命令是 ALTER MODULE XXX ADD PROCEDURE YYYY。我正在寻找类似 ALTER MODULE XXX REPLACE PROCEDURE YYYY 的东西,但它不存在。

标签: sql module db2 routines


【解决方案1】:

为了替换模块中的例程(存储过程或函数),不必删除主体并重新创建所有对象。

为了替换一个例程,可以删除一个特定的过程/函数,然后重新创建它:

ALTER MODULE m1 ADD PROCEDURE p1 ()
 BEGIN
  ...
 END@
ALTER MODULE m1 DROP PROCEDURE p1@
ALTER MODULE m1 ADD PROCEDURE p1 ()
 BEGIN
  ...
 END@

但是,没有真正的 REPLACE 操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多