在Oracle数据库中,MULTISET是一种用于处理嵌套表(nested table)和VARRAY(可变数组)的运算符
CREATE TYPE emp_list AS TABLE OF NUMBER;
CREATE TABLE dept (
dept_id NUMBER,
emp_ids emp_list
) NESTED TABLE emp_ids STORE AS emp_ids_nt;
INSERT INTO dept (dept_id, emp_ids) VALUES (10, emp_list(1, 2, 3));
INSERT INTO dept (dept_id, emp_ids) VALUES (20, emp_list(4, 5, 6));
SELECT dept_id, COLUMN_VALUE AS emp_id
FROM dept, TABLE(emp_ids) t;
这将返回以下结果:
DEPT_ID EMP_ID
------- ------
10 1
10 2
10 3
20 4
20 5
20 6
通过使用MULTISET运算符,可以轻松地将嵌套表或VARRAY中的元素转换为行,从而实现更简单、更直观的数据处理。