इस प्रश्न में शामिल हुए बिना- आप तालिका प्रकार का उपयोग क्यों कर रहे हैं न कि तालिका (या अस्थायी तालिका) का, आप इसे इस तरह कर सकते हैं:
declare
my_table varTableType;
i varchar2(32767);
begin
my_table := new
varTableType('bbbb', 'ccca', 'ddda', 'eee', 'fffa', 'gggg');
select trim(xmlagg(xmlelement(e, column_value || ','))
.extract('//text()'))
into i
from table(my_table)
where column_value like '%a';
dbms_output.put_line(i);
end;
पंक्तियों को जोड़ने के और भी तरीके हैं- WM_CONCAT (यदि सक्षम हो) या LISTTAGG (11g R2 के बाद से) लेकिन
. का मूल विचारselect column_value
from table(my_table)
where column_value like '%a';
रहता है
sql के बिना एक और तरीका है:
declare
my_table varTableType;
i varchar2(32767);
begin
my_table := new
varTableType('bbbb', 'ccca', 'ddda', 'eee', 'fffa', 'gggg');
FOR j IN my_table.first .. my_table.last LOOP
IF my_table(j) like '%a' THEN
i := i || my_table(j);
END IF;
END LOOP;
dbms_output.put_line(i);
end;