मैं प्रतिभागियों की उम्र के अनुसार नाम और एक श्रेणी प्रदर्शित करने की कोशिश कर रहा हूँ
CREATE OR REPLACE PROCEDURE categorie AS
v_age NUMBER := 1;
part_info participant%ROWTYPE;
BEGIN
SELECT *
INTO part_info
FROM Participant
WHERE age > v_age;
FOR i IN part_info
IF(part_info.age<=18) THEN
DBMS_OUTPUT.PUT_LINE('NAME: ' || part_info.nomParticipant || 'CATEGORIE : JUNIOR');
ELSIF(part_info.age>=50) THEN
DBMS_OUTPUT.PUT_LINE('NAME: ' || part_info.nomParticipant || 'CATEGORIE : SENIOR');
ELSE
DBMS_OUTPUT.PUT_LINE('NAME: ' || part_info.nomParticipant || 'CATEGORIE : MIDDLE');
END IF;
END LOOP;
END;
मुझे किसकी याद आ रही है ?
त्रुटि है "चेतावनी: संकलन त्रुटियों के साथ बनाई गई प्रक्रिया।"
0
EriicButDrunk
16 फरवरी 2021, 21:44
1 उत्तर
सबसे बढ़िया उत्तर
सबसे पहले, कोड में ओपनिंग LOOP
गायब है, और इस तथ्य के कारण त्रुटि उत्पन्न होती है। नतीजतन, आप अकेले SELECT
स्टेटमेंट के बजाय एक कर्सर का उपयोग करना चाहते हैं, फिर part_info
क्वालिफायर को LOOP
के भीतर i
से बदलें:
SQL> SET SERVEROUTPUT ON
SQL> CREATE OR REPLACE PROCEDURE categorie AS
v_age INT := 1;
CURSOR part_info IS
SELECT *
FROM Participant
WHERE age > v_age;
BEGIN
FOR i IN part_info
LOOP
IF i.age <= 18 THEN
DBMS_OUTPUT.PUT_LINE('NAME: ' || i.nomParticipant || ' CATEGORIE : JUNIOR');
ELSIF i.age >= 50 THEN
DBMS_OUTPUT.PUT_LINE('NAME: ' || i.nomParticipant || ' CATEGORIE : SENIOR');
ELSE
DBMS_OUTPUT.PUT_LINE('NAME: ' || i.nomParticipant || ' CATEGORIE : MIDDLE');
END IF;
END LOOP;
END;
/
0
Barbaros Özhan
16 फरवरी 2021, 23:11
आपका स्वागत है @EriicbutDrunk मदद करने के लिए अच्छा है
– Barbaros Özhan
17 फरवरी 2021, 00:13
संबंधित सवाल
नए सवाल
oracle
ओरेकल डेटाबेस ओरेकल कॉर्पोरेशन द्वारा बनाया गया एक मल्टी-मॉडल डेटाबेस मैनेजमेंट सिस्टम है। Oracle, जैसे जावा और MySQL के स्वामित्व वाले अन्य उत्पादों के लिए इस टैग का उपयोग न करें।
CATEGORIE
से पहले औरJUNIOR|SENIOR|MIDDLE
के बाद एक खुला एकल उद्धरण चाहते हैं और उनके बीच कोई एकल उद्धरण नहीं है।SQL*Plus
में, त्रुटियां दिखाने के लिएshow errors
टाइप करें। या क्वेरीuser_errors
।part_info
पर लूप नहीं कर सकते क्योंकि यह कर्सर नहीं है।