我有一个游标,它调用一个返回表的函数。游标和函数都在一个包中。如何执行此游标以查看输出?
ozxc1zmp1#
只要游标在程序包规范中定义(或至少声明),您就可以运行它并循环来自匿名块的结果:
begin for r in your_package.your_cursor loop -- do something with result row, e.g. -- dbms_output.put_line(r.your_column); end loop; end; /
举个简单的例子:
create package your_package as cursor your_cursor is select dummy from dual; end; /
begin for r in your_package.your_cursor loop dbms_output.put_line(r.dummy); end loop; end; /
fiddle
这也适用于规范中的游标声明和程序包体中的游标主体(fiddle)。
如果光标只在包体中,而不在规范中,那么它将在包之外不可见或不可访问。
1条答案
按热度按时间ozxc1zmp1#
只要游标在程序包规范中定义(或至少声明),您就可以运行它并循环来自匿名块的结果:
举个简单的例子:
fiddle
这也适用于规范中的游标声明和程序包体中的游标主体(fiddle)。
如果光标只在包体中,而不在规范中,那么它将在包之外不可见或不可访问。