首页 > 解决方案 > 创建与现有 Oracle 表结构相同的 Oracle 类型

问题描述

我正在尝试在 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;

我试图在网上找到一些信息,似乎没有任何类似的主题。

任何提示将不胜感激。

标签: oraclejdbcplsqlspring-jdbcoracle-type

解决方案


类型是否需要是 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;
/

推荐阅读