oracle自定义函数 for in loop示例

1、新建type,就是返回结果集有什么,这里就写什么(相当于表的字段)

CREATE OR REPLACE TYPE "TYPE_NQ_FORM_STATISTICS" as object
(recordid   varchar2(500),form_name varchar2(200),sortone varchar2(100),sorttwo varchar2(100),formids varchar2(500),formidm  varchar2(500),reason  varchar2(500),check_date  varchar2(100),check_userid  varchar2(100),check_ward   varchar2(100),ward_name  varchar2(100),dept       varchar2(100)
)

2、新建table,(相当于把上部分的查询的字段保存到这张表中)

CREATE OR REPLACE TYPE "TYPE_NQ_FORM_TABLE" is table of TYPE_NQ_FORM_STATISTICS
3、创建自定义函数

CREATE OR REPLACE FUNCTION "MINI_FUN_NQ_FORM_STATISTICS"--我写得是无参函数,所以这里没有传参
  return TYPE_NQ_FORM_TABLE --返回结果集table
  pipelined is    
  recordid varchar2(200);    --定义变量
  formids  varchar2(200);
  formidm  varchar2(200);
  rwodata  TYPE_NQ_FORM_STATISTICS; --查询的结果集
begin
  for item in (select t.record_id, m.form_id    --循环1(item )
                 from T_NQ_FORM_RECORD_COLUMN t
                inner join T_NQ_FORM_COLUMN m
                   on t.column_id = m.column_id
                  and t.column_value = '1') loop --for in lop循环,查询一条循环一次
    recordid := item.record_id; --给变量赋值
    formids  := item.form_id;
  
    for itemo in (select o.column_content --循环2(itemo )
                    from T_NQ_FORM_COLUMN o
                   where o.form_id = formids --这里是根据循环1的每一个formids来循环
                     and o.td_index = 1) loop
      for itemt in (select p.*,               --循环3(itemt )
                           (select t.ward_name
                              from T_HRM_WARD t
                             where t.ward_id = p.checked_ward_id) as ward_name
                      from T_NQ_FORM_RECORD p
                     where p.record_id = recordid--这里是根据循环1的每一个recordid来循环
                       and p.state = 2) loop
        formidm := itemt.form_id;
        for itemf in (select t.form_name, t.sortone, t.sorttwo  --循环4(itemf )
                        from T_NQ_FORM t
                       where t.form_id = formidm--这里是根据循环3的每一个formidm来循环
                         and t.del_flag = 0) loop
        
          rwodata := TYPE_NQ_FORM_STATISTICS(itemt.record_id,
                                             itemf.form_name,
                                             itemf.sortone,
                                             itemf.sorttwo,
                                             item.form_id,
                                             itemt.form_id,
                                             itemo.column_content,
                                             itemt.check_date,
                                             itemt.check_user_id,
                                             itemt.checked_ward_id,
                                             itemt.ward_name,
                                             itemt.dept_id);--查询想返回的所有结果
 
          pipe row(rwodata);--添加结果集
        end loop; --结束循环,我这里用了4个循环
      end loop;
    end loop;
  end loop;
end MINI_FUN_NQ_FORM_STATISTICS;
4、调用函数

select * from   table(MINI_FUN_NQ_FORM_STATISTICS)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353340.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

辨别MagicKeyboard的真伪(序列号验证版)

RT 楼主前两天海鲜市场买了一个magic Keyboard, 大概是这个样子的 起来感觉没啥差别,橙色也蛮好。 今天某位大佬告诉我鉴别真假的方法,看了之后我心都凉了 写出来给大家避避坑 将键盘用连接到Mac电脑上,打开系统报告,看USB下面的…

WinMerge使用

1、介绍:是一款运行于Windows系统下的免费开源的文件比较/合并工具,使用它可以非常方便地比较多个文档内容甚至是文件夹与文件夹之间的文件差异。 2、对于测试人员的作用:可以用来比较测试数据内容,如在进行回归测试报表数据的时…

windows系统上使用magic trackpad妙控触摸板

windows系统上使用magic trackpad妙控触摸板 另外出自用全新 jd自营随时可以全保换新 jd自营购买的 apple magic trakpad 妙控板 还有保险 随时可换新 前言 最近在家学习很少打游戏,想了一下翻出了我箱子里我之前mac mini用的trackpad,因为我之前的笔…

magic-api 框架使用

概述 先说一下为什么选择这个框架,在搬砖过程中百分之八十的代码是增删改查操作,复杂的逻辑只是占了不多部分,这个框架能够使简单增删改查的时间大大减少. magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映…

Git for windows 和 cygwin

git for windows 根目录和安装目录 C:\Program Files\Gitcygwin 根目录和安装目录 C:\cygwin64建议环境变量设置. cygwin使用gitFW的命令 cygwin下装 vim插件 cygwin 配置 在当前目录打开cygwin(存在无法在中文路径下打开目录的问题) 计算机\HKEY_CLASSES_ROOT\Director…

WINCE KITL工具

KITL(Kernel Independent Transport Layer)是基于Windows CE平台的一种软件技术,开发商基于它可以很容易地支持各种调试功能。因为WindowsCE的调试是一种远程调试,所以开发工作站(运行PB的机器)和设备端必须要有相应的通信通道&am…

Windows--cygwin

原文网址:Windows--cygwin_IT利刃出鞘的博客-CSDN博客 写在前头的话 cygwin只是模拟一个Linux环境,使用它无法进入Windows系统的盘的路径,个人认为不如git bash好用。 下载 Cygwin InstallationIndex of /cygwin/Index of /cygwin/ 安装 …

如何获取 C#程序 内核态线程栈

一:背景 1. 讲故事 在这么多的案例分析中,往往会发现一些案例是卡死在线程的内核态栈上,但拿过来的dump都是用户态模式下,所以无法看到内核态栈,这就比较麻烦,需要让朋友通过其他方式生成一个蓝屏的dump&…

win7配置magic mouse和keyboard

记录一下我是如何在win7下配置magic mouse 和keyboard的。 首先打开笔记本的蓝牙,然后进入到控制面板,找到添加设备。 键盘很好添加,当屏幕显示一串数字时,到键盘上去按对应的数字键就行了。 让我意外的鼠标的配置,…

NYOJ 348 Magic

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid348 题意:给你n张牌,让你变一个魔术:第1次把上面的1张牌放到底部,然后最上面的牌就是1,然后拿走1。第2次把上面的2张牌依次放到底部&#xff…

D. Magic Gems

http://codeforces.com/contest/1117/problem/D 题意:n,m(1e18) ;有一些魔法石,一个魔法石可以分裂成m个普通宝石,每个宝石站一个单位空间;问有多少集合使得站n个空间; 思路: #inc…

以全能之力造非凡旗舰:荣耀Magic3系列新品发布

8月12日,标志性全能科技旗舰荣耀Magic3系列新品正式发布,荣耀Magic3、荣耀Magic3 Pro、荣耀Magic3至臻版三款机型集中亮相。 融合秩序美学、高端材质、美妙破晓时刻,造就非凡设计;延续荣耀AI与影像优势,首次将电影工业…

【实用工具】magic-api接口快速开发框架

【实用工具】magic-api接口快速开发框架 magic-api是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口。 无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发。 …

magics24安装教程|magics中文版下载

magics24是由Materialise公司推出的一款功能强大的平面数据处理软件,通过它,能够使用户用最短的前置时间提供高质量样品,并在此过程提供全部文件,非常实用。该软件在完整性、灵活性、强大行和易用性等各个方面都具有不可代替的优势…

C# Winform控件包 MaterialSkin使用教程 免费开源,支持中文!

如果没有拿到控件包DLL的可以去这篇文章里自取。C# Winform控件包分享,免费开源,支持中文! 控件比较多,我会抽出时间分控件逐一书写教程,不定时更新,感兴趣的朋友可以关注我。 本文将在以下几个方面进行指…

5.2.6 地址解析协议ARP

5.2.6 地址解析协议ARP 我们知道要想实现全球范围内主机之间的通信,必须要有两个统一,一个是地址,另一个是数据格式,我们使用IP地址来实现统一的地址,使用IP分组实现统一的数据格式,在前面局域网的学习中我…

如何利用MES系统进行生产防呆防错?

一、认识MES系统的防呆防错功能 首先,我们要清楚了解,什么是MES系统的防呆防错。MES系统防呆防错是指利用MES系统来避免生产过程中的错误和缺陷,保障生产排程和生产过程顺利进行的过程。MES系统防呆防错包括以下方面: 1. 自动识别…

Nginx服务——主配置文件-nginx.conf

一、全局配置的6个模块简介 模块说明全局块全局配置,对全局生效events块配置影响 Nginx 服务器与用户的网络连接http块配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置server块配置虚拟主机的相关参数,一个 http 块中可…

《Metasploit渗透测试魔鬼训练营》学习笔记

Metasploit渗透测试魔鬼训练营学习笔记 法律常识 《中华人民共和国网络安全法》已由中华人民共和国第十二届全国人民代表大会常务委员会第二十四次会议于2016年11月7日通过,现予公布,自2017年6月1日起施行。 第二十条 国家支持企业和高等学校、职业学…

青魔法Python(持续更新)

*跳转到文章结尾* https://www.cnblogs.com/Asterism-2012/p/10047356.html 目录 注释的学问 青魔法Python-圣诞快乐 python源于圣诞节,他的创造者是Guido van Rossum(贤者-龟叔)。 操作系统:Windows10,Linux Ubuntu 编译器&#xff1…