我有一个名为" fusion"的现有软件包。包定义类似于
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应声明
答案 0 :(得分:0)
尝试使用此更新代码
编译程序规范create or replace package fusion as
type finalrecord is record(column1 varchar2(20),column2 number);
type mytable is table of finalrecord;
procedure first_procedure(abc in number);
procedure second_procedure(efg in number);
procedure third_procedure(mt out mytable);
end fusion;
/