带有参数的 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 中基于参数的选择查询

相关推荐
oradh3 分钟前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
z123456789861 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD1 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
TlSfoward2 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
数智化管理手记2 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘
LabVIEW开发3 小时前
NI Package Manager安装LabVIEW时InternalServerError错误
网络·数据库·labview·labview知识·labview功能·labview程序
SelectDB3 小时前
PostgreSQL 实时同步到 Apache Doris:一站式 CDC 解决方案
数据库
Database_Cool_3 小时前
AI Agent 长期记忆怎么存?阿里云 PolarDB-X 对接 Mem0 记忆框架实践
数据库·阿里云
会编程的土豆4 小时前
数据库范式
数据库·oracle
L1624764 小时前
MySQL 全环境生产快速安装 + 完整配置手册(整合国产银河麒麟适配 + 主从补充版)
数据库·mysql