สิ่งนี้จะเกิดขึ้นเมื่อคุณมี 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;
แม้ว่าวิธีแรกจะง่ายตาย แต่ครั้งแรกที่ฉันได้รับเรียกกลางดึกสำหรับปัญหาเดียวกันนี้ฉันได้เลือกวิธีที่สอง ความผิดฉันเอง ...