create package create package body record data type

时间:2014-05-03 11:15:49

标签: oracle package procedure

我有一个名为" 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中编译但显示这些错误

  1. 子程序或光标' third_procedure'在包规范中声明,必须在包体中定义。

  2. mytable应声明

1 个答案:

答案 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;
/