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