日期:2014-05-17 浏览次数:20858 次
CREATE OR REPLACE TYPE "T_VC" is table of varchar2(100); / create or replace function f_test(i_str varchar2)return t_vc as v_str_table t_vc; begin v_str_table := t_vc(); for i in 1..length(i_str) loop v_str_table.extend; v_str_table(i):=substr(i_str,i,1); end loop; return v_str_table; end; / SQL> select * from table(f_test('aw298fdf')); COLUMN_VALUE -------------------------------------------- a w 2 9 8 f d f 8 rows selected
------解决方案--------------------
CREATE OR REPLACE TYPE "T_VC" is table of varchar2(100); --定义一个数组类型 / create or replace function f_test(i_str varchar2)return t_vc --定义返回数组类型的函数 as v_str_table t_vc; --定义一个数组类型变量 begin v_str_table := t_vc(); --初始构造,数组大小为0 for i in 1..length(i_str) loop --循环参数i_str里的每个字符 v_str_table.extend; --增加数组大小加1 v_str_table(i):=substr(i_str,i,1); --一个个字符截取,保存到数组里 end loop; return v_str_table; --返回数组 end; / SQL> select * from table(f_test('aw298fdf')); --用table函数展示数组结果 COLUMN_VALUE -------------------------------------------- a w 2 9 8 f d f 8 rows selected
------解决方案--------------------
很不容易,给点分吧
------解决方案--------------------
实测成功,但“表函数”是什么意思呢?不太理解。
CREATE OR REPLACE TYPE StringArray IS TABLE OF VARCHAR2(20);
------解决方案--------------------