我的程序
CREATE OR REPLACE PROCEDURE my_procedure(res OUT SYS_REFCURSOR , p_LstKH CLOB)
AS
CURSOR c_dsKH
IS
SELECT TO_NUMBER(REGEXP_SUBSTR(p_LstKH,'[^,]+', 1, level)) value FROM dual
CONNECT BY REGEXP_SUBSTR(p_LstKH, '[^,]+', 1, level) IS NOT NULL;
BEGIN
...
END;
我想拆分长字符串 p_LstKH,然后放入 CURSOR c_dsKH。示例:p_LstKH = '1,2,....,10000'
c_dsKH.value
1
2
...
10000
但是,当我执行该过程时,我收到错误“没有足够的内存用于通过操作连接”。我尝试用 p_LstKH VARCHAR2 替换参数 p_LstKH CLOB,然后我收到其他错误“ORA-06502: PL/SQL: numeric or value error: string buffer too small”。
我现在该怎么办 ?简单地说,我想拆分一个长字符串。谢谢大家!