답변:
동일한 이름이지만 입력 매개 변수 수가 다른 두 개 이상의 프로 시저가있는 경우 발생합니다.
예를 들어, 2 개의 프로 시저를 작성했습니다.
CREATE PROCEDURE myProc(param1)
...
CREATE PROCEDURE myProc(param1, param2)
...
두 번째 옵션을 삭제하려면 두 가지 옵션이 있습니다.
쉬운 것 :
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;
첫 번째 방법이 간단하지 않더라도 한밤중에 같은 문제로 처음 전화를 걸 때 두 번째 방법을 선택했습니다. 내 잘못이야 ...
앞으로 이것이 문제가 될 수 있음을 알고있는 경우 데이터베이스의 모든 프로 시저에서 고유해야하는 SPECIFIC 이름으로 프로 시저를 작성할 수 있습니다.
프로 시저를 작성할 때 문제가된다는 것을 모르는 경우 공식적으로 돌아가서 특정 이름을 추가 할 수 없으며 문제가 있습니다.
sysprocedures
선택한 답변 의 UPDATE는 사용자가 informix
(또는 개인 서버의 경우 서버 소유자) 로 연결된 경우에만 작동합니다 .