में फ़ंक्शन का उपयोग नहीं किया जा सकता है, मैं पैकेज बनाने के बिना अपने पाइपलाइन फ़ंक्शन का परीक्षण करना चाहता हूं। निम्नलिखित उदाहरण सरलीकृत है:पीएलएस -00231: एसक्यूएल
DECLARE
FUNCTION testDC RETURN NCOL PIPELINED IS
BEGIN
PIPE ROW(5);
END;
BEGIN
FOR cur IN (select * from table (testDC())) LOOP
dbms_output.put_line('--> ');
END LOOP;
END;
लेकिन मैं इस त्रुटि मिलती है:
ORA-06550: line 7, column 7: pls-00231: function TESTDC may not be used in SQL
ORA-06550: line 7, column 7: PL/SQL: ORA-00904: : invalid identifier
ORA-06550: line 7, column 7: PL/SQL: SQL Statement ignored
इन समारोह का परीक्षण करने का इससे बेहतर तरीका क्या है?
आप परीक्षण करने की कोशिश कर रहे हैं? आप सिर्फ फ़ंक्शन को कॉल करना चाहते हैं और प्रत्येक पंक्ति के लिए अपना तीर प्रिंट करना चाहते हैं? (जो उस कार्य के लिए एक बार है जैसा आपने इसे दिखाया है) –
हां, मैं बस फ़ंक्शन को कॉल करना चाहता हूं और प्रत्येक पंक्ति के लिए अपना तीर प्रिंट करना चाहता हूं –
आपका फ़ंक्शन ('testDC') निजी रूप से आपके अज्ञात ब्लॉक में घोषित किया गया है, इसलिए आपके द्वारा चलाए जाने वाले किसी भी प्रश्न (आपके ब्लॉक में किसी भी प्रश्न सहित) इसे देखने में सक्षम नहीं होंगे। यह उन मामलों में से एक है जहां हम एसक्यूएल और पीएल/एसक्यूएल संदर्भों के बीच अलगाव देखते हैं। –