在Oracle中,TABLE()
函數是一個內置的SQL函數,用于將一個嵌套表(nested table)或關聯數組(associative array)轉換為一個關系表(relational table)
以下是一個簡單的示例,說明如何在存儲過程中使用TABLE()
函數:
CREATE TYPE emp_ids_type AS TABLE OF NUMBER;
TABLE()
函數將其轉換為關系表:CREATE OR REPLACE PROCEDURE get_employees(p_emp_ids IN emp_ids_type)
IS
BEGIN
FOR rec IN (SELECT * FROM TABLE(CAST(p_emp_ids AS emp_ids_type)))
LOOP
DBMS_OUTPUT.PUT_LINE('Employee ID: ' || rec.COLUMN_VALUE);
END LOOP;
END;
/
DECLARE
v_emp_ids emp_ids_type := emp_ids_type(101, 102, 103);
BEGIN
get_employees(v_emp_ids);
END;
/
這個示例中,我們創建了一個名為get_employees
的存儲過程,該過程接受一個emp_ids_type
類型的參數。在存儲過程中,我們使用TABLE()
函數將傳入的嵌套表轉換為關系表,并使用FOR
循環遍歷結果集,輸出每個員工ID。