मुझे आपके द्वारा प्राप्त की जा रही विशिष्ट त्रुटि समझ में नहीं आ रही है, लेकिन आम तौर पर आपको SQL कथन में उपयुक्त प्रकार में एक स्पष्ट कास्ट शामिल करने की आवश्यकता होती है:
open O_CURSOR for select * from table(CAST(dados AS t_pontos));
ऐसा इसलिए है क्योंकि स्टेटमेंट को प्रोसेसिंग के लिए पीएल/एसक्यूएल से एसक्यूएल इंजन को सौंप दिया जाता है, और इसमें उपयोगकर्ता-परिभाषित होने के अलावा वेरिएबल के प्रकार के बारे में कोई जानकारी नहीं होती है।
साथ ही, यह केवल तभी काम करता है जब प्रकार (t_pontos
.) ) को स्कीमा स्तर पर घोषित किया जाता है, अर्थात CREATE TYPE
. के साथ बयान। अगर इसे पीएल/एसक्यूएल कोड में कहीं घोषित किया गया है, उदा। पैकेज विनिर्देश में, SQL इंजन प्रकार की परिभाषा तक नहीं पहुंच सकता।