gpt4 book ai didi

oracle - 如何在oracle中为记录类型编写循环

转载 作者:行者123 更新时间:2023-12-02 00:57:29 26 4
gpt4 key购买 nike

我有以下语句,可以在我的包中正常编译:

包头:

   TYPE role_user_type IS RECORD (
ROLE_ID some_table.ROLE_ID%TYPE,
SUBGROUP some_table.USER_ID%TYPE
);

正文:

ROLE_USER_REC                  MY_PACKAGE.ROLE_USER_TYPE;

SELECT B.USER_ID, B.ROLE INTO ROLE_USER_REC
FROM some_table where user_id like 'M%'

循环ROLE_USER_REC的骨架是什么?我们甚至可以循环它吗?

最佳答案

没有什么可以循环的。

role_user_type 定义一条记录,您可以通过以下方式访问:

dbms_output.put_line( role_user_rec.role_id || ', ' || role_user_rec.subgroup );

一旦返回多行,您的SELECT ... INTO就会失败。

<小时/>

如果您需要存储其中几条记录,可以使用 nested tables喜欢
TYPE role_user_tab 是 role_user_type 的表:

示例:

DECLARE
TYPE role_user_type IS RECORD (
ROLE_ID VARCHAR2(10),
SUBGROUP VARCHAR2(10)
);
TYPE role_user_tab IS TABLE OF role_user_type;
role_user_rec role_user_tab;
BEGIN
SELECT 'A', 'B'
BULK COLLECT INTO role_user_rec
FROM dual;
FOR i IN role_user_rec.FIRST .. role_user_rec.LAST LOOP
dbms_output.put_line( role_user_rec(i).role_id || ', ' || role_user_rec(i).subgroup );
END LOOP;
END;

关于oracle - 如何在oracle中为记录类型编写循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3282170/

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