Stored-Procedures

如何刪除名稱不明確的程序?

  • June 8, 2016

我正在使用informix …

我不知道我是怎麼做到的,但是我的數據庫中有兩個同名的過程。當我嘗試用

DROP PROCEDURE myProc;

然後我收到一條錯誤消息

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

我怎樣才能放棄程序?

當您有 2 個或多個具有相同名稱但具有不同數量的輸入參數的過程時,就會發生這種情況。

例如,您創建了 2 個過程:

CREATE PROCEDURE myProc(param1)
...
CREATE PROCEDURE myProc(param1, param2)
...

要刪除第二個,您有 2 個選項:

最簡單的:

DROP PROCEDURE myProc(param1, param2);

最難的:

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;

即使第一種方法非常簡單,當我第一次在半夜接到同樣的問題時,我選擇了第二種。我的錯 …

引用自:https://dba.stackexchange.com/questions/9507