我的包装有问题,看起来像:
create or replace
PACKAGE pac AS
TYPE A IS RECORD
(
aa VARCHAR2(255)
);
TYPE B is ARRAY(1) of A;
PROCEDURE proc1( som OUT B);
然后当我创建它失败时,这个记录类型有问题..
我这样做是因为那时在java中我做了
call = connection.prepareCall(...);
call.registerOutParameter(1, Types.ARRAY,...);
call.execute();
array = call.getArray(1);
答案 0 :(得分:0)
您的示例包代码不是语法上有效的PL / SQL代码,您不提供错误详细信息。以下是我猜你要做的事情:
/* First part of a package is a specification that declares public items
that can be called outside of the package. */
create or replace package pac as
type a is record (
aa varchar2(255)
);
type b is array(1) of a;
procedure proc1(som out B);
end;
/
/* Second part is a body that defines cursors and subprograms (in this case
proc1-procedure). */
create or replace package body pac as
procedure proc1(som out b) as
v_a a;
begin
v_a.aa := 'foo';
som := b(v_a);
end;
end;
/
declare
v_som pac.b;
begin
pac.proc1(v_som);
dbms_output.put_line(v_som(1).aa); /* prints foo */
end;
/
另请参阅Oracle有关PL/SQL packages。
的文档