oracle 字符串分割成数组 函数
时间: 2024-09-20 13:13:22 浏览: 51
oracle字符串分割自定义函数
在Oracle数据库中,你可以使用内置的`DBMS_ASSERT.TO_ARRAY()`函数或者SQL的`SPLIT_TO_TABLE()`函数将字符串分割成数组。这两个函数通常用于处理XML数据,但也适用于字符串操作。
1. `DBMS_ASSERT.TO_ARRAY()`: 这个函数将字符串转换为数组,适合于逗号分隔的值(CSV)。例如:
```sql
DECLARE
str VARCHAR2(100) := 'a,b,c,d';
arr SYS.ODCIVARCHAR2LIST;
BEGIN
DBMS_ASSERT.TO_ARRAY(str, ',', arr);
FOR i IN 1..ARR.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(arr(i));
END LOOP;
END;
```
这会输出:a b c d
2. `SPLIT_TO_TABLE()`: 如果你的数据库版本支持,可以直接使用这个函数将字符串按指定字符分割:
```sql
SELECT column_value
FROM TABLE(DBMS_XMLUtil.SPLIT_TO_TABLE('a|b|c|d', '|') );
```
这同样会返回一个结果集:a b c d
阅读全文