带有参数的 PL/SQL 过程/函数从选择查询返回表

技术标签:

【中文标题】带有参数的 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 个单元格而不是一个表格中,例如:, 细胞?什么细胞?如果您想将数据导出到例如MS Excel(具有"单元格"),一个简单的选项是将查询结果假脱机到 CSV 文件中 - 这是纯 SQL。或者,如果您想使用 PL/SQL,您可以连接列值并用分号(或其他分隔符)分隔它们,并使用 DBMS_OUTPUT.PUT_LINE 来显示这些行。或者,使用 UTL_FILE 包创建输出文件。或者,使用提供导出到 Excel 的 GUI 工具(如 SQL Developer 或 TOAD)。 单元格我的意思是只有一列...(只有一行和一列),结果是.....,。我不是指任何输出文件 excel - 谢谢 恐怕我听不懂你在说什么,抱歉。如果可能的话,提供一个例子------就像我做的那样;编辑问题并将其发布到那里。 , ...... 这是响应的显示方式而不是表格格式

以上是关于带有参数的 PL/SQL 过程/函数从选择查询返回表的主要内容,如果未能解决你的问题,请参考以下文章

从基于 PL/SQL 函数体返回 SQL 查询的 Oracle APEX 5 经典报告下载到 Excel 选项,

从 PL/SQL 中的查询加硬编码变量返回用户定义的表

Oracle Pl/sql 从多个查询中返回一个游标

带有 where 条件的 PL/SQL 更新查询作为带有一些空值的选择查询

ORACLE PL/SQL:使用多个参数调用存储过程函数(DML 查询)

Oracle PL/SQL 中基于参数的选择查询

相关推荐
Paxon Zhang15 分钟前
MySQL 大师之路**数据库约束,表设计,CRUD**
android·数据库·mysql
HealthScience22 分钟前
clinvar数据集说明
数据库·oracle
王的宝库30 分钟前
【MySQL】主从复制原理详解:从 Binlog 到数据一致性
数据库·mysql
Vect__31 分钟前
MySQL基本认知、库和表的操作
数据库·mysql
cyber_两只龙宝1 小时前
【Oracle】Oracle之DQL中SELECT的基础使用
linux·运维·服务器·数据库·云原生·oracle
老苏畅谈运维1 小时前
Oracle 在线表重定义:将非分区表转换为分区表的最佳实践
数据库·oracle
treacle田1 小时前
达梦数据库-达梦数据库中link链接访问oracle 19c/11g-记录总结
数据库·oracle·达梦 link访问oracle
萌兰三太子1 小时前
RAG 向量数据库设计指南:从入门到生产
数据库·oracle
TDengine (老段)1 小时前
中原油田引入时序数据库 TDengine:写入性能提升、存储成本下降 85%
大数据·数据库·人工智能·时序数据库·tdengine·涛思数据
IT邦德1 小时前
Oracle 26ai搭建ADG Far Sync日志备库
数据库·oracle