我正在尝试在Oracle PL / SQL存储过程中保存一些Java集合。
有人知道,是否有办法创建与现有Oracle表相同结构的Oracle类型?我想避免为每个Java集合创建大量的CREATE OR REPLACE TYPE t_row AS OBJECT(...);
,然后创建CREATE OR REPLACE TYPE t_list AS TABLE OF t_row;
。
换句话说,我想创建类似的东西:
CREATE OR REPLACE TYPE typename AS TABLE OF schema.existing_table;
我试图在网络上找到一些信息,似乎没有类似的主题。
任何提示将不胜感激。
类型是否必须为SQL类型?如果可以使用PL / SQL类型,则可以声明%ROWTYPE
记录的集合。大概是在一个或多个包中创建类型,然后在适当的地方使用它们。
create table foo (
col1 number,
col2 number
);
create or replace package my_collections
as
type foo_tbl is table of foo%rowtype;
end;
/
declare
foos my_collections.foo_tbl := new my_collections.foo_tbl();
begin
foos.extend(1);
foos(1).col1 := 1;
foos(1).col2 := 2;
dbms_output.put_line( foos.count );
end;
/