कुछ मुद्दे:
VARHAR2
हमें एक टाइपो औरVARCHAR2
. होना चाहिए .- इसके बजाय आप
table_name.column_name%TYPE
का उपयोग करके संबंधित तालिका कॉलम को संदर्भित करने के लिए डेटाटाइप निर्दिष्ट कर सकते हैं ।
- इसके बजाय आप
- प्रक्रिया कुछ भी आउटपुट नहीं करती है - आपको
IN
. में से किसी एक को बदलने की आवश्यकता हैOUT
. के पैरामीटर (या एकIN OUT
पैरामीटर)। - आपकी क्वेरी तालिका का नाम निर्दिष्ट नहीं करती है।
- आप उपयोग कर सकते हैं
SELECT ... INTO ...
CURSOR
. के बजाय ।
कुछ इस तरह:
CREATE OR REPLACE PROCEDURE FIRSTPROC (
ID1 IN table_name.id1val%TYPE,
ID2 OUT table_name.id2val%TYPE
)
AS
BEGIN
DBMS_OUTPUT.PUT_LINE(ID1);
SELECT id2val
INTO ID2
FROM table_name
WHERE id1val = ID1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
ID2 := 0; -- Or you could use NULL
WHEN TOO_MANY_ROWS THEN
ID2 := 0; -- Or you could use NULL
END;
/