मेरे पास यह कोड है जहां मैं कुछ सम्मिलित मान जोड़ना चाहता हूं, उन्हें जोड़ना और एक विशिष्ट कॉलम में सम्मिलित करना चाहता हूं। लेकिन मुझे त्रुटि के बाद त्रुटि मिल रही है। और मुझे लगता है कि यह अंतिम है, लेकिन मुझे कोई जानकारी नहीं है। अच्छा कोई मेरी मदद करे? अधिक जानकारी के साथ एक स्क्रीनशॉट जोड़ा गया।

मेरा कोड:

DECLARE 
BEGIN   
INSERT INTO thuiswerk_declaratie    (MNR, WNR, UREN_GEWERKT, TOTAAL_BEDRAG)
                
VALUES                  (:P8_MNR, 
                         :P8_WNR, 
                         :P8_TOTAAL_AANTAL_UREN (:P8_MAANDAG_UREN +
                                              :P8_DINSDAG_UREN +
                                              :P8_WOENSDAG_UREN +
                                              :P8_DONDERDAG_UREN + 
                                              :P8_VRIJDAG_UREN), 
                         :P8_TOTAAL_BEDRAG (:P8_TOTAAL_AANTAL_UREN * 0.2)
                    );
END;

कोड और त्रुटि का प्रिंटस्क्रीन

0
Chris M. 31 जिंदा 2021, 18:30

1 उत्तर

सबसे बढ़िया उत्तर

":P8_TOTAAL_AANTAL_UREN" और ":P8_TOTAAL_BEDRAG" क्या है? वे शीर्ष में बाध्य चर हैं, इसलिए उनमें एक स्ट्रिंग (फ़ंक्शन नाम नहीं) होता है, हालांकि, आपके कोड को देखते हुए, ऐसा लगता है कि आप किसी फ़ंक्शन को बाइंड वैरिएबल में संदर्भित करने का प्रयास कर रहे हैं जो आपको वह त्रुटि देगा। शायद यह सिर्फ एक वाक्यविन्यास त्रुटि है, आप इसे आजमा सकते हैं:

DECLARE 
BEGIN   
INSERT INTO thuiswerk_declaratie    (MNR, WNR, UREN_GEWERKT, TOTAAL_BEDRAG)
                
VALUES                  (:P8_MNR, 
                         :P8_WNR, 
                         :P8_MAANDAG_UREN + :P8_DINSDAG_UREN + :P8_WOENSDAG_UREN + :P8_DONDERDAG_UREN + :P8_VRIJDAG_UREN, 
                         :P8_TOTAAL_AANTAL_UREN * 0.2
                    );
END;

यदि आप वास्तव में कोई फ़ंक्शन चाहते हैं, तो आप निम्न में से कोई एक कार्य कर सकते हैं: ध्यान दें कि ये अधिक जटिल समाधान हैं।

विकल्प 1:

आप एपेक्स का उपयोग कर रहे हैं। इसे संभालने के लिए सबसे अच्छा अभ्यास एक गणना बनाना है जो कॉलम UREN_GEWERKT के लिए पेज आइटम की गणना करेगा और दूसरा कॉलम TOTAAL_BEDRAG के लिए। आपका pl/sql ब्लॉक तब होगा:

DECLARE 
BEGIN   
INSERT INTO thuiswerk_declaratie    (MNR, WNR, UREN_GEWERKT, TOTAAL_BEDRAG)
                
VALUES                  (:P8_MNR, 
                         :P8_WNR, 
                         :P8_TOTAAL_AANTAL_UREN, 
                         :P8_TOTAAL_BEDRAG 
                    );
END;

आप इस मामले में आपके लिए सभी जादू करने के लिए बिल्ड-इन फॉर्म क्षेत्र का भी उपयोग कर सकते हैं।

विकल्प 2:

मान लें कि आपके पास (1) एक pl/sql फ़ंक्शन total_hours है जो thuiswerk_declaratie.UREN_GEWERKT के समान डेटाटाइप का मान लौटाता है और 5 तर्क (सप्ताह के प्रति दिन 1 और (2) अन्य फ़ंक्शन Total_amount लेता है जो समान डेटाटाइप का मान देता है thuiswerk_declaratie के रूप में। TOTAAL_BEDRAG और 1 तर्क लेता है आप अपना pl/sql ब्लॉक इस प्रकार लिख सकते हैं:

DECLARE 
BEGIN   
INSERT INTO thuiswerk_declaratie    (MNR, WNR, UREN_GEWERKT, TOTAAL_BEDRAG)
                
VALUES                  (:P8_MNR, 
                         :P8_WNR, 
                         total_hours (:P8_MAANDAG_UREN +
                                              :P8_DINSDAG_UREN +
                                              :P8_WOENSDAG_UREN +
                                              :P8_DONDERDAG_UREN + 
                                              :P8_VRIJDAG_UREN), 
                         total_amount (:P8_TOTAAL_AANTAL_UREN * 0.2)
                    );
END;
1
Koen Lostrie 31 जिंदा 2021, 19:24
आह मुझे लगता है कि मैं इसे समझता हूँ। तो आप जो कह रहे हैं वह यह है कि मुझे दो कार्यों की आवश्यकता है जैसे Total_hours और Total_amount। गणना करने के लिए :P8_TOTAAL_AANTAL_UREN और :P8_TOTAAL_BEDRAG और फिर उन्हें वापस कर दें? क्या मेरा कोड काम नहीं कर रहा है क्योंकि पेज आइटम स्ट्रिंग हैं और कोई चर नहीं है?
 – 
Chris M.
31 जिंदा 2021, 19:04
क्षमा करें, अभी मेरा समाधान अपडेट किया गया है - मुझे लगता है कि आपके पास सिर्फ एक वाक्यविन्यास त्रुटि है। यदि आप केवल मान जोड़ रहे हैं तो आपको फ़ंक्शन की आवश्यकता क्यों होगी। अगर यह मदद करता है तो मैं अपना पहला जवाब वापस रख सकता हूं
 – 
Koen Lostrie
31 जिंदा 2021, 19:09
अरे, एन.पी. हालांकि यह मददगार होगा। यदि यह एक सिंटैक्स त्रुटि है, तो मैं कोड का निवारण कैसे कर सकता हूं? या यह वह प्रणाली है जो त्रुटि का कारण बनती है?
 – 
Chris M.
31 जिंदा 2021, 19:17
मूल उत्तर वापस रखें, नए के साथ विलय करें। त्रुटि आपको बताती है कि समस्या क्या है। एक सम्मिलित विवरण अल्पविराम से अलग किए गए मानों की सूची लेता है। उन स्तंभों में से एक फ़ंक्शन हो सकता है (स्पष्ट फ़ंक्शन, बाइंड वैरिएबल नहीं)। त्रुटि आपको बताती है कि यह एक फ़ंक्शन की अपेक्षा कर रहा है। आपने एक बाइंड वैरिएबल पास किया है।
 – 
Koen Lostrie
31 जिंदा 2021, 19:28
धन्यवाद कोएन, इससे वास्तव में मदद मिली। मेरे पास अब यह काम कर रहा है!
 – 
Chris M.
31 जिंदा 2021, 19:55