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

相关推荐
AIgorithmGEEK19 小时前
MySQL 索引全解(下):建、查、删实战与知识速查表
数据库·mysql·b+树·索引
唠点键盘之外的21 小时前
26 向量数据库实战:从 0 搭一条能用的检索链路(pgvector + Spring AI)
数据库·人工智能·spring
云和恩墨21 小时前
数据库监控简史:监控不止于告警——从图表大爆发到健康管理闭环
数据库
ly76891 天前
MongoDB 事务开销实测:快照隔离下的写冲突、重试与分片事务边界
数据库·mongodb·事务·分片集群·快照隔离·写冲突
豆角焖肉1 天前
Spring AOP 自定义注解实现系统操作日志
数据库·自定义注解·springaop·操作日志·aop 切面
金伟API10241 天前
不会写复杂SQL怎么办?
数据库·sql
执笔为剑1 天前
2.1.2-1、V8R3迁移到V8R6-Oracle兼容特性
数据库
江湖有缘1 天前
Docker实战 | 使用Docker部署rmoments社交平台
jvm·docker·oracle
geovindu1 天前
sql:Search-Optimized SQL Queries using mysql 9.0
android·数据库·sql·mysql·数据库开发·数据库架构
for_ever_love__1 天前
MySQL SELECT 与 WHERE 优化实战:可搜索条件、联合索引与执行计划
数据库·mysql·oracle·select·where·条件优化·查询优化技巧