我目前正在努力解決PL/SQL問題,並且還沒有找到明確的答案。問題是,我有一個T類型的對象,它可以包含相同類型T的對象列表。包含同一對象列表的Oracle對象
比方說,我有一個類型TPerson。 TPerson由一個名字和一個孩子列表定義。所以我有一個祖父,他的兩個兒子,第一個有兩個女兒。
在PL/SQL,一些研究之後,我這樣做:
CREATE OR REPLACE TYPE TPerson IS OBJECT
(
Name VARCHAR2(30),
Children REF TPersonList,
constructor function TPerson(name VARCHAR2) return self as result
);
CREATE OR REPLACE TYPE body TPerson as
constructor function TPerson(aname VARCHAR2) return self as result is
begin
Name := aname;
Children := TPersonList();
return;
end;
end;
CREATE OR REPLACE TYPE TPersonList IS TABLE OF REF TPerson';
一切,沒有例外運行。但TPerson類型編譯不正確,我有這個編譯錯誤:
pls-00532 target of ref must be a complete or incomplete object type
這是我第一次使用這個REF事情。我甚至不確定我是否正確使用它。在我看來,這不是一個很好的方法('孩子'),但我沒有選擇。所以如果有人能解釋我一個正確的方式來實現這一點,這將幫助我很多...
這是句法上不正確的,你試圖引用一個不存在的類型,並且在創建你引用的類型時不存在。你需要首先對其進行完整的定義。 – XING