ऐसा लगता है कि आपका डीबी सोलो क्लाइंट पहले अर्धविराम की व्याख्या कर रहा है जो इसे कथन के अंत के रूप में देखता है, जो सादे एसक्यूएल (डीएमएल या डीडीएल) के लिए उचित है लेकिन पीएल/एसक्यूएल के लिए नहीं है।
आप देख सकते हैं कि आपके द्वारा पोस्ट की गई लॉग छवि से; यह create function ... v_ids integer
. का व्यवहार करता है एक कथन के रूप में भाग क्योंकि यह पहले अर्धविराम के साथ समाप्त होता है - यह संकलित करता है लेकिन एक त्रुटि के साथ। फिर यह अगला खंड, अगले अर्धविराम तक, एक अलग कथन के रूप में लेता है - v_str varchar2(5000)
- और यह वह है जिसे ORA-00900 मिलता है, क्योंकि यह मान्य SQL नहीं है।
तो उसके आधार पर यह समझ में नहीं आता कि पीएल/एसक्यूएल को अलग तरीके से कैसे व्यवहार किया जाए; लेकिन आप अपनी सेटिंग्स को बदल सकते हैं ताकि अर्धविरामों को स्टेटमेंट सेपरेटर के रूप में नहीं माना जा सके - बोर्ड भर में, जिसका अर्थ है कि आपको create type
दोनों के बाद GO को जोड़ना होगा। और create function
बयान, और आपके द्वारा किए गए किसी भी अन्य प्रश्न या कॉल। यह /
. का उपयोग करने के समान होगा SQL*Plus या SQL Developer में हर जगह।
प्रक्रिया संपादक का उपयोग करना आसान हो सकता है . संभवतः आपके द्वारा ऑब्जेक्ट ब्राउज़र से प्रकार और फ़ंक्शन बनाने के बाद ।
या, निश्चित रूप से, किसी भिन्न क्लाइंट का उपयोग करें...