我自己做了一個data_object:散裝收集SQL
CREATE OR REPLACE TYPE my_object AS OBJECT(
number_type NUMBER,
varchar_type VARCHAR2(20)
)
然後我創建類型
CREATE OR REPLACE TYPE my_nt IS TABLE OF my_object;
而且我想用嵌套表這個對象做一個程序,這將是回報數有些部門的僱員。我已經得到了兩個表:員工和部門,這是我的代碼:
DECLARE
enum_dname my_nt := my_nt();
PROCEDURE print_l IS
BEGIN
DBMS_OUTPUT.put_line('---------------------------------------------------------');
FOR i IN 1..enum_dname.COUNT
LOOP
DBMS_OUTPUT.PUT_LINE(enum_dname(i));
END LOOP;
END;
BEGIN
SELECT COUNT(emp_id) as number_of, department_name
BULK COLLECT INTO enum_dname
FROM employees e, department d
WHERE e.department_id = d.department_id
GROUP BY department_name;
print_l;
END;
它告訴我的錯誤:PLS - 00306:數字錯誤的參數的呼叫類型:PUT_LINE
和PL \ SQL: ORA - 00947:數值不足
謝謝!
它不應該是'enum_dname(I).number_type'或'enum_dname(I).varchar_type',而不是僅僅'enum_dname(我)'。你嘗試過嗎? –
@SudiptaMondal:我認爲你應該讓它成爲一個答案 – Nitish