假设我声明了一个游标,如下所示
CURSOR cur_customer IS
SELECT c.customer_id, c.name, o.order_date
FROM customer c, order o
WHERE c.customer_id = o.customer_id
BEGIN
FOR rec_customer IN cur_Customer LOOP
-- invoke procedure here with rec_customer as a parameter
END LOOP;
END;
字符串
对于只从一个表中读取游标的情况,可以如下声明该参数
rec_customer customer%ROWTYPE
型
但在本例中,游标是从2个表中提取的。那么,如何声明这种情况下的参数呢?有可能吗?
有什么建议吗?谢啦,谢啦
1条答案
按热度按时间sqxo8psd1#
如果这些都是在PL/SQL程序中完成的,你就不需要声明任何东西。使用隐式游标,让PL/SQL来解决:
字符串
我并不推荐这是一个很好的使用CURSOR FOR循环的方法,它只是说明了使事情工作所需的基础设施是多么少。
如果你想要更多的结构,你可以使用%ROWTYPE关键字引用游标,如下所示:
型
也就是说,您可以使用游标来定义记录变量,就像使用表一样。
如果你想定义一个可以在程序单元之间共享的结构,特别是包,声明一个RECORD类型。大概是这样的:
型
你可以用它来定义不同的东西,例如。程序单元参数,无论您在何处使用%ROWTYPE。把这样的声明放在一个包规范中,以便在多个包中共享它们。
型
了解更多