如何删除名称不明确的程序?

Pet*_*erP 13 stored-procedures informix

我正在使用informix...

我不知道我是怎么做到的,但是我的数据库中有两个同名的过程。当我尝试用

DROP PROCEDURE myProc;
Run Code Online (Sandbox Code Playgroud)

然后我收到一条错误消息

ERROR: Routine (add_adr_trigger_row) ambiguous - more than one
routine resolves to given signature.
Error Code: -9700
Run Code Online (Sandbox Code Playgroud)

我怎样才能放弃这些程序?

MTI*_*hai 14

当您有 2 个或更多具有相同名称但输入参数数量不同的过程时,就会发生这种情况。

例如,您创建了 2 个过程:

CREATE PROCEDURE myProc(param1)
...
CREATE PROCEDURE myProc(param1, param2)
...
Run Code Online (Sandbox Code Playgroud)

要删除第二个,您有两个选择:

最简单的:

DROP PROCEDURE myProc(param1, param2);
Run Code Online (Sandbox Code Playgroud)

难点:

dbaccess DB -
select procname, procid, numargs from sysprocedures where procname like 'myProc';
procname  myProc
procid    1
numargs   1

procname  myProc
procid    2
**numargs   2**

UPDATE sysprocedures SET procname='myProcOLD' WHERE procid=2;
DROP PROCEDURE myProcOLD;
Run Code Online (Sandbox Code Playgroud)

即使第一种方法非常简单,当我第一次因为同样的问题在半夜接到电话时,我选择了第二种方法。我的错 ...