ORA-06512 त्रुटि स्टैक का हिस्सा है। यह हमें वह लाइन नंबर देता है जहां अपवाद हुआ, लेकिन अपवाद का कारण नहीं। यह आमतौर पर शेष स्टैक में इंगित किया जाता है (जिसे आपने अभी भी पोस्ट नहीं किया है)।
एक टिप्पणी में आपने कहा
ठीक है, आपका कोड यह करता है:
IF ((pNum < 12) OR (pNum > 14)) THEN
RAISE vSOME_EX;
यही है, यह एक अपवाद उठाता है जब pNum 12 और 14 के बीच नहीं होता है। तो क्या बाकी एरर स्टैक में यह लाइन शामिल है?
यदि ऐसा है, तो आपको केवल त्रुटि को संभालने के लिए एक अपवाद ब्लॉक जोड़ने की आवश्यकता है। शायद:
PROCEDURE PX(pNum INT,pIdM INT,pCv VARCHAR2,pSup FLOAT)
AS
vSOME_EX EXCEPTION;
BEGIN
IF ((pNum < 12) OR (pNum > 14)) THEN
RAISE vSOME_EX;
ELSE
EXECUTE IMMEDIATE 'INSERT INTO M'||pNum||'GR (CV, SUP, IDM'||pNum||') VALUES('||pCv||', '||pSup||', '||pIdM||')';
END IF;
exception
when vsome_ex then
raise_application_error(-20000
, 'This is not a valid table: M'||pNum||'GR');
END PX;
प्रलेखन में पीएल/एसक्यूएल अपवादों को गहराई से संभालना शामिल है।
- और जानें ।