Oracle 如何使用包含游标的过程返回表?PL/SQL

Oracle 如何使用包含游标的过程返回表?PL/SQL,oracle,stored-procedures,plsql,cursor,procedure,Oracle,Stored Procedures,Plsql,Cursor,Procedure,我有一个过程,它被赋予一个值作为输入,在完成一些过程之后,在该过程中使用游标,我希望该过程返回一个表 作为输入参数给出的这一个值是用于标识多行的非唯一ID 这样我就可以运行如下命令: 从{callprocedure\u nameinput\u Param}中选择* 我对PLSQL的了解有限 我不确定一个过程中是否可以有一个游标定义,如果可能的话,那么如何从该过程返回整个表 顺便说一句:这个过程必须使用select语句调用,如果不是select语句,那么它应该返回一个表,最后是select*。 如

我有一个过程,它被赋予一个值作为输入,在完成一些过程之后,在该过程中使用游标,我希望该过程返回一个表

作为输入参数给出的这一个值是用于标识多行的非唯一ID

这样我就可以运行如下命令:

从{callprocedure\u nameinput\u Param}中选择*

我对PLSQL的了解有限

我不确定一个过程中是否可以有一个游标定义,如果可能的话,那么如何从该过程返回整个表

顺便说一句:这个过程必须使用select语句调用,如果不是select语句,那么它应该返回一个表,最后是select*。 如果我必须指定要输出的列而不是选择*我是否需要提供所有这些列名作为输入参数?如果我希望程序只返回少量列,我该怎么办

谢谢

您需要使用流水线函数。下面的示例,在末尾链接到更多信息

创建测试管道的表格 身份证号码 名字叫VARCHAR220, 工资号码 ; 在测试管中插入值1,'Smith',5000; 在测试管中插入值2,'Brown',8000; 在测试管道中插入值3,‘间隔’,10000; 犯罪 创建类型t\u pipe\u row\u test作为对象 名字叫VARCHAR220, 工资号码 ; / “创建类型t_管道测试”选项卡是t_管道行测试的表格; / 创建或替换功能测试\u func\u Pippep\u min\u工资(数字) 返回管道测试选项卡 管道 像 开始 对于v_rec,选择名称、薪资 从测试管 其中工资>=p\u最低工资 环 管道行t_管道行t_测试v_记录名称,v_记录工资; 端环; 终止 / 从TABLEtest_func_pipe6000中选择*; 输出:

NAME SALARY -------------------- ---------- Brown 8000 Bay 10000