牛爷爷们我在Oracle想写一个方法getRowNum2,想仿照SPLIT方法输入‘3-6’通过 table(getRowNum2(‘3-6’)) 输出4行3\4\5\6来
create FUNCTION getRowNum2(string VARCHAR2, char VARCHAR2 := '-') return TYPE_SPLIT
PIPELINED IS
IDX PLS_INTEGER;
starNum PLS_INTEGER;
endNum PLS_INTEGER;
BEGIN
IDX := instr(string, char);
if IDX > 0 THEN
starNum := to_number(substr(string, 1, IDX - 1));
endNum := to_number(substr(string, IDX + 1, length(string)));
WHILE (starNum < endNum)
LOOP
PIPE ROW (TO_CHAR(starNum));
starNum := starNum + 1;
end loop;
RETURN;
ELSE
PIPE ROW (string);
END IF;
return;
end getRowNum2;
/
select * from TABLE ( getRowNum('77-88') );
但是报错
[65000][6575] ORA-06575: 程序包或函数 GETROWNUM 处于无效状态 Position: 22,能不能帮我看看啥问题