用于在Oracle上查询的管道行

用于在Oracle上查询的管道行,oracle,plsql,Oracle,Plsql,我有一个查询,其中我使用调试DBMS_输出来显示数据, 但它只在调试模式下工作 set serveroutput on; DECLARE CURSOR MyCursor IS select distinct AccountID, AccountName from Account where rownum < 10; TYPE Temp_Account IS TABLE OF MyCursor%ROWTYPE INDEX BY PLS_INTEGER;

我有一个查询,其中我使用调试DBMS_输出来显示数据, 但它只在调试模式下工作

set serveroutput on;
DECLARE
    CURSOR MyCursor IS 
      select distinct AccountID, AccountName from Account where rownum < 10;
    TYPE Temp_Account IS TABLE OF MyCursor%ROWTYPE INDEX BY PLS_INTEGER;
    All_Accounts Temp_Account;
BEGIN    
Open MyCursor;
  Fetch MyCursor BULK COLLECT INTO All_Accounts;
  CLOSE MyCursor;
  for i in All_Accounts.first .. All_Accounts.last loop   
    DBMS_OUTPUT.PUT_LINE(All_Accounts(i).AccountName);
  end loop;  
END ;
打开服务器输出;
声明
游标MyCursor是
从rownum<10的帐户中选择不同的AccountID、AccountName;
类型Temp_Account是MyCursor%行类型索引的表,按PLS_整数;
所有临时账户;
开始
打开我的光标;
将MyCursor批量收集到所有_帐户中;
关闭我的光标;
因为我在所有账户中都是第一个。。所有帐户。最后一个循环
DBMS_OUTPUT.PUT_行(所有_帐户(i).AccountName);
端环;
终止
我尝试使用 管道行(所有_账户(i)),但它仅在函数上工作

DECLARE
    CURSOR MyCursor IS 
      select distinct AccountID, AccountName from Account where rownum < 10;
    TYPE Temp_Account IS TABLE OF MyCursor%ROWTYPE INDEX BY PLS_INTEGER;
    All_Accounts Temp_Account;
BEGIN    
  Open MyCursor;
  Fetch MyCursor BULK COLLECT INTO All_Accounts;
  CLOSE MyCursor;
  for i in All_Accounts.first .. All_Accounts.last loop   
    pipe row(All_Accounts(i));
  end loop;  
END ;
声明
游标MyCursor是
从rownum<10的帐户中选择不同的AccountID、AccountName;
类型Temp_Account是MyCursor%行类型索引的表,按PLS_整数;
所有临时账户;
开始
打开我的光标;
将MyCursor批量收集到所有_帐户中;
关闭我的光标;
因为我在所有账户中都是第一个。。所有帐户。最后一个循环
管道行(所有_账户(i));
端环;
终止
我的问题是: 在运行时(非调试)模式下,我可以显示结果行集吗 不使用管道行?
我是PL/SQL的初学者,请帮助我…谢谢

谁或什么人将看到/使用输出?你想让它成为一个其他东西可以处理的结果集吗?是的,我正在使用Delphi上的一个程序来显示结果,我的查询不是这个,它更复杂…是的,当然
管道行
只适用于函数。存储过程不能返回结果集,只有函数才能返回。那么,为什么要以PL/SQL的形式返回呢?你为什么不做一个简单的选择呢?在这里发布你的查询,我们将尽力帮助你进行优化<代码>流水线功能肯定不会加快速度。