gpt4 book ai didi

database - Oracle Stored Proc - 我可以返回由许多其他 STRUCT 组成的复合 TYPE 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:06:23 26 4
gpt4 key购买 nike

我想在 Oracle(11g) 中创建一个存储过程,它将从通过 FK 连接的 14-16 个表中获取数据。逻辑如下-1. 从输入参数中提取主表中的 key 。2. 使用键从所有其他表中提取数据。

我还想创建与每个表对齐的 Oracle 类型和包含所有这些类型数组的复合 TYPE。

注意事项:

  1. 很少有表可能没有该键的数据。如果数据特别丢失,我会为该表返回空白结构。
  2. 对于给定的键,某些表可能有多行。我们将填充映射到该表的 ARRAY of TYPE。

我是 oracle 编程的新手。我想了解,是否可以从 SP 返回 COMPOSITE TYPE?如果不可能,我可以从 SP 返回多个 ARRAY of TYPE 吗?

最佳答案

是的,可以在 SQL 和 PL/SQL 中构建复合类型。下面是一个使用对象类型的示例:

drop table table2;

create table table1(a number, b number);
create table table2(a number, b number);

create or replace type table1_type is object
(
a number,
b number
);

create or replace type table2_type is object
(
a number,
b number
);

create or replace type table1_nt is table of table1_type;
create or replace type table2_nt is table of table1_type;

create or replace type table_1_2_type is object
(
table1 table1_nt,
table2 table2_nt
);

table_1_2_type 现在可以用作返回类型或 OUT 类型。

不幸的是,类型定义非常重复。 %TYPE 和 %ROWTYPE 运算符在 SQL 中不起作用,并且根据您使用这些对象的方式,它们必须定义为 SQL 类型。

关于database - Oracle Stored Proc - 我可以返回由许多其他 STRUCT 组成的复合 TYPE 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22967725/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com