在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函數的錯誤。