在Oracle中没有内置的SplitStr函数,但是可以使用其他方法来实现类似的功能。以下是一种常见的方法:
SELECT REGEXP_SUBSTR('apple,banana,orange', '[^,]+', 1, LEVEL) AS fruit
FROM dual
CONNECT BY REGEXP_SUBSTR('apple,banana,orange', '[^,]+', 1, LEVEL) IS NOT NULL;
CREATE OR REPLACE PROCEDURE SplitStr(p_str IN VARCHAR2, p_delim IN VARCHAR2) IS
v_start NUMBER := 1;
v_end NUMBER;
BEGIN
WHILE v_start <= LENGTH(p_str) LOOP
v_end := INSTR(p_str, p_delim, v_start);
IF v_end = 0 THEN
v_end := LENGTH(p_str) + 1;
END IF;
DBMS_OUTPUT.PUT_LINE(SUBSTR(p_str, v_start, v_end - v_start));
v_start := v_end + 1;
END LOOP;
END;
/
然后可以调用这个存储过程来处理字符串:
BEGIN
SplitStr('apple,banana,orange', ',');
END;
/
通过这些方法,您可以在Oracle中处理SplitStr函数的错误。