0
我在包含'SMITH,ALLEN,WARD,JONES'的表中有一个字段。我试图用光标从表中读取行,当找到这个特定的字段时,使用regexp_substr将它分割为','
作为分隔符。发现空数据时PL/SQL游标不会退出
下面是代码:
PROCEDURE x26837a_dummy IS
CURSOR d_cursor IS
SELECT regexp_substr('SMITH,ALLEN,WARD,JONES', '[^,]+', 1, level)
FROM x26837a_dummy_table
CONNECT BY regexp_substr('SMITH,ALLEN,WARD,JONES', '[^,]+', 1, 1) IS NOT NULL
lvar VARCHAR2(128) := '';
BEGIN
OPEN d_cursor;
LOOP
FETCH d_cursor
INTO lvar;
EXIT WHEN d_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(lvar);
END LOOP;
CLOSE d_cursor;
END x26837a_dummy;
我想的名字单独返回,所以在印刷四个值后,这个光标应该退出,因为在那之后它返回空值。但%NOTFOUND
条件不会退出循环并保持循环。似乎无法弄清楚这个问题。
非常感谢。这工作 - >如果lvar是null然后退出;万一; 。 level参数返回所有集合,但我只需要一个,这就是我用'1'去的原因。 – Varghese