注册

达梦使用自定义函数,怎么才能不使用table()这个进行直接调用函数。

ʚ 胖虎 ɞ 2024/10/08 293 2

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【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',',')

怎么改创建的函数的返回值呀
当然结果我想要得到下面的形式 求解
image.png

回答 0
暂无回答
扫一扫
联系客服