在Oracle數據庫中,table()函數用于將復雜的集合類型轉換為表類型。它接受集合類型作為參數,并返回該集合類型的表表示。
以下是使用table()函數的一些示例:
DECLARE
TYPE emp_type IS TABLE OF employees%ROWTYPE;
emp_tab emp_type;
BEGIN
SELECT * BULK COLLECT INTO emp_tab FROM employees;
-- 使用table()函數將表類型變量轉換為表
SELECT * FROM TABLE(emp_tab);
END;
/
DECLARE
TYPE emp_names IS TABLE OF employees.last_name%TYPE;
emp_names_tab emp_names;
BEGIN
SELECT last_name BULK COLLECT INTO emp_names_tab FROM employees;
-- 使用table()函數將單個字段的集合類型轉換為表
SELECT * FROM TABLE(emp_names_tab);
END;
/
DECLARE
TYPE emp_dept IS TABLE OF employees%ROWTYPE;
TYPE dept_employees IS TABLE OF emp_dept;
dept_emp_tab dept_employees;
BEGIN
SELECT department_id, CAST(MULTISET(SELECT * FROM employees WHERE department_id = d.department_id) AS emp_dept)
BULK COLLECT INTO dept_emp_tab
FROM departments d;
-- 使用table()函數將嵌套表類型轉換為表
SELECT d.department_name, e.*
FROM TABLE(dept_emp_tab) d, TABLE(d.column_value) e;
END;
/
這些示例展示了如何在PL/SQL塊中使用table()函數,并將集合類型轉換為表類型,以便在查詢中使用。請根據自己的需求調整代碼。