0
我有一個名爲「融合」的現有包。包定義是這樣創建包創建包體記錄數據類型
create or replace package "fusion' as
create procedure first_procedure(abc in number)
create procedure second_procedure(efg in number)
end fusion;
封裝體的定義是一樣
create or replace package body fusion as
procedure first_procedure(abc in number) is
begin
....
end first_procedure;
procedure second_procedure(efg in number) is
begin
....
end second_procedure;
end fusion;
在這種現有包,我需要包括具有一個自定義記錄類型作爲輸出的第三步驟。那麼我應該在哪裏聲明自定義記錄類型?我已經寫像
create or replace package "fusion' as
type finalrecord is record(column1 varchar2,column2 number);
type mytable is table of finalrecord;
create procedure first_procedure(abc in number)
create procedure second_procedure(efg in number)
create procedure third_procedure(mt out mytable)
end fusion;
和封裝主體作爲
create or replace package body fusion as
procedure first_procedure(abc in number) is
begin
....
end first_procedure;
procedure second_procedure(efg in number) is
begin
....
end second_procedure;
procedure third_procedure(mt out mytable) is
myissueid number(2);
begin
--do something
end third_procedure;
end fusion;
這在的SQLDeveloper編譯,但是示出這些錯誤
子程序或遊標「third_procedure」在包規範聲明並且必須在包體中定義。
MYTABLE應該聲明
您展示更新的軟件包規範有幾個錯誤,但它不是,如果你清楚」我們介紹了在這裏更改發佈代碼的方法。 [它清理了一下就可以工作](http://sqlfiddle.com/#!4/9bee6/1)。假設你確實改變了它,你確實似乎在更新後的主體之前重新編譯了更新的規範,但它是否說規範中有錯誤?如果它是乾淨的,那麼你的類型和參數名稱是否完全一樣? –