gpt4 book ai didi

oracle - 如何将值附加到 oracle 类型

转载 作者:行者123 更新时间:2023-12-02 08:58:25 25 4
gpt4 key购买 nike

如何将 3 或 4 个不同的值附加(插入)到一个 oracle 类型,然后用游标打开它。

例如(伪):

insert into mytype select 1 from dual;
insert into mytype select 3 from dual;
insert into mytype select 5 from dual;

open cursor_1 for select * from table(mytype);

这可以在 pl/sql 中实现吗?

我知道这是微不足道的,可以合并到一个查询中,但我真正需要的是进行不同的查询并不断将结果附加到 mytype。

最佳答案

假设您的意思是您有一个自定义 SQL 类型(大概是嵌套表类型)和该类型的 PL/SQL 变量:我不相信您可以 INSERT 到其中,并且我不要认为您可以以附加到集合的方式SELECT进入它。

您可以选择一个标量变量,然后按程序将其附加到集合中。

SQL> create type mytype as table of integer;
2 /

Type created.

SQL> set serveroutput on
SQL> l
1 declare
2 mytable mytype := mytype();
3 cursor_1 sys_refcursor;
4 x integer;
5 procedure append_to_table( t IN OUT mytype, y IN INTEGER)
6 is
7 begin
8 t.extend();
9 t(t.COUNT) := y;
10 end append_to_table;
11 begin
12 select 1 into x from dual;
13 append_to_table( mytable, x );
14 select 3 into x from dual;
15 append_to_table( mytable, x );
16 select 5 into x from dual;
17 append_to_table( mytable, x );
18 open cursor_1 for select * from table(cast(mytable as mytype));
19 fetch cursor_1 into x;
20 dbms_output.put_line(x);
21 fetch cursor_1 into x;
22 dbms_output.put_line(x);
23 fetch cursor_1 into x;
24 dbms_output.put_line(x);
25 close cursor_1;
26* end;
SQL> /
1
3
5

PL/SQL procedure successfully completed.

关于oracle - 如何将值附加到 oracle 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3202840/

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