【发布时间】:2020-08-13 18:21:52
【问题描述】:
假设我有一个名为 student 的表,它有 3 个属性,即学号、姓名和最喜欢的颜色,当我这样调用程序时:
execute favColor('RED');
输出应该是:
NAME FAV_COLOR
-------- -----------
MARY RED
JANE RED
PETER RED
JOHN RED
我可以提供一个示例代码来执行此操作吗?到目前为止,我只看到插入或更新记录的过程,如果过程中有选择语句,它必须有一个 into 子句,这是否意味着过程不可能显示这个输出?
【问题讨论】:
-
这是一个简单的 SQL SELECT。为什么需要在 PL/SQL 中进行?如果您必须在 pl/sql 中执行此操作,那么您只需将 SELECT 放入游标循环中,将每一行提取到适当的局部变量中,并在每次迭代后使用 dbms_output.put_line 来显示结果。但是,您还需要注意所有 PL/SQL 都在数据库内部执行。 dbms_output 只是写入缓冲区,由客户端决定是否读取、处理和显示该缓冲区。因此,dbms_output 的使用并不真正适合“生产”代码。
标签: oracle stored-procedures plsql sqlplus