7. Selecting from a collection
You can (and should) create your own type for this :
create type tab_varchar2_64 as table of varchar2(64);
If you can't then you may be able to get by with using SYS.DBMS_DEBUG_VC2COLL
This will turn a list of values into rows.
SELECT column_value
from table(tab_varchar2_64('1','Fred','Amber'));
8. Selecting from a (Pipelined) function
Again, you should use your own collection for the return type.
create or replace function f_generate_dummy_name
return sys.DBMS_DEBUG_VC2COLL pipelined is
type tab_char is varray(26) of varchar2(1);
t_vowel tab_char := tab_char('A','E','I','O','U');
t_other tab_char := tab_char('B','C','D','F','G','H','J','K','L','M','N',
'P','Q','R','S','T','V','W','X','Y','Z');
begin
for one in 1..t_other.count loop
for two in 1..t_vowel.count loop
for three in 1..t_other.count loop
pipe row (t_other(three)||t_vowel(two)||t_other(one));
end loop;
end loop;
end loop;
return;
end;
.
/
select * from table(f_generate_dummy_name);
No comments:
Post a Comment