作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下语句,可以在我的包中正常编译:
包头:
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/
我是一名优秀的程序员,十分优秀!