为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:
我创建的函数如下
CREATE OR REPLACE TYPE fruit_obj AS OBJECT (
a VARCHAR2(100) -- 设置查询的列名为 a
);
CREATE OR REPLACE TYPE fruit_table AS TABLE OF fruit_obj;
CREATE OR REPLACE FUNCTION splitstr(
p_string IN VARCHAR2,
p_delimiter IN VARCHAR2
) RETURN fruit_table PIPELINED IS
l_string VARCHAR2(100);
l_fruit VARCHAR2(100);
BEGIN
l_string := p_string;
-- 处理字符串并返回嵌套表
WHILE INSTR(l_string, p_delimiter) > 0 LOOP
l_fruit := SUBSTR(l_string, 1, INSTR(l_string, p_delimiter) - 1);
PIPE ROW(fruit_obj(l_fruit)); -- 将分割的元素放入对象
l_string := SUBSTR(l_string, INSTR(l_string, p_delimiter) + LENGTH(p_delimiter));
END LOOP;
-- 添加最后一个元素
PIPE ROW(fruit_obj(l_string));
RETURN;
END;
我调用的时候只能是
select a from table(splitstr('1,2,1,5,4',','))
我想直接调用
select a from splitstr('1,2,1,5,4',',')
怎么改创建的函数的返回值呀
当然结果我想要得到下面的形式 求解
通过函数返回一个table类型,只能通过table这种方式来获取