我只是試圖實現管道行嵌套類型。周圍有很多例子,但沒有我能夠應用的例子。管道嵌套對象類型
我的類型是:
create type t1_row as object (a1 number, a2 varchar2(10));
create type t1_tab as table of t1_row;
create type t2_row as object (b1 number, b2 varchar2(10), b3 t1_tab);
create type t2_tab as table of t2_row;
我試圖創建在許多方面的功能,但沒有人能夠成功編譯。
一個例子:
create or replace function fn (r in number) return t2_row pipelined is
l_row1 t1_tab;
l_row2 t2_tab;
begin
for i in 1..r loop
for j in 1..r loop
l_row1(j).a1 := j;
l_row1(j).a2 := 'a2 ' || j;
end loop;
l_row2(i) := (i,l_row1);
PIPE ROW (l_row2);
end loop;
return;
end;
此代碼產生以下錯誤:
[錯誤] PLS-00630(1:12):PLS-00630:流水線的功能必須有一個支持的集合返回類型
[錯誤] PLS-00382(10:22):PLS-00382:表達式是錯誤的類型
任何幫助建議或任何類似的例子都可能有用。
版本:Oracle 11g發行11.2.0.1.0
什麼錯誤,這樣做例子給你當你去編譯它? –
(錯誤] PLS-00630(1:12):PLS-00630:流水線函數必須具有受支持的收集返回類型 [錯誤] PLS-00382(10:22):PLS-00382:表達式類型錯誤) 但我只是爲了一個例子而寫的,我不能添加所有我試過的例子 – Deniz