带有参数的 PL/SQL 过程/函数从选择查询返回表
Posted
技术标签:
【中文标题】带有参数的 PL/SQL 过程/函数从选择查询返回表【英文标题】:PL/SQL Procedure/function with params to return a table from(of) a select query 【发布时间】:2020-12-01 11:17:49 【问题描述】:如何创建带参数的 (Oracle) 函数/过程以在块内返回由 select 语句返回的表
尝试使用 refcursor 获取数据如下,全部在一行中
image link for the sample output
附:我对 PL/SQL 很陌生
【问题讨论】:
【参考方案1】:一种选择是返回 refcursor。这是一个例子:
SQL> create or replace function f_test (par_deptno in number)
2 return sys_refcursor
3 is
4 rc sys_refcursor;
5 begin
6 open rc for select * from emp where deptno = par_deptno;
7 return rc;
8 end;
9 /
Function created.
SQL> select f_test(10) from dual;
F_TEST(10)
--------------------
CURSOR STATEMENT : 1
CURSOR STATEMENT : 1
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
7782 CLARK MANAGER 7839 09.06.81 2450 10
7839 KING PRESIDENT 17.11.81 10000 10
7934 MILLER CLERK 7782 23.01.82 1300 10
SQL>
【讨论】:
-我已经尝试过这个并且绝对有效,但不确定所有数据都在 1 个单元格而不是一个表格中,例如:以上是关于带有参数的 PL/SQL 过程/函数从选择查询返回表的主要内容,如果未能解决你的问题,请参考以下文章
从基于 PL/SQL 函数体返回 SQL 查询的 Oracle APEX 5 经典报告下载到 Excel 选项,
带有 where 条件的 PL/SQL 更新查询作为带有一些空值的选择查询