oracle函数及自定义type

oracle函数及自定义type最近第一使用到oracle的函数返回结果集,记下大致的使用:因为在函数中无法使用表类型,所有首先,要创建一个自定义的类型,类似java的beancreateorreplacetypebbs_typeasobject(BBS_ID              number(11),                     SECTION_ID       

大家好,又见面了,我是你们的朋友全栈君。

最近第一使用到oracle的函数返回结果集,记下大致的使用:

因为在函数中无法使用表类型,所有

首先,要创建一个自定义的类型,类似java的bean

create or replace type bbs_type as object
(
BBS_ID               number(11),                    
   SECTION_ID           NUMBER(11),
   USER_ID              NUMBER(11),
   BBS_NAME             varchar2(50),
   GROUP_NAME           number(2),
   CREATE_TIME          timestamp
);

然后根据这个bean,创建一个不定长的数组类型

create or replace type bbs_arr as table of BBS_TYPE

这时,我们就可以在函数中使用我们自定义的bbs_arr作为返回值

CREATE OR REPLACE FUNCTION bbs_select(userid in number,secId in number) –声明一个函数及其参数

RETURN bbs_arr –声明函数返回值,bbs_arr为我们之前创建的数组类型

as v_test bbs_arr := bbs_arr();  –声明一个属性,并初始化,作为我们的返回值

temp BBS_TYPE;声明一个行类型变量,用于添加至数组中

BEGIN

temp:=BBS_TYPE(0,0,0,null,0,null);–初始化该临时变量,有点像我们java中的new对象,不过我不知道怎么使用无参的初始化,希望有前辈看到可以指点我下

for i in(select)–遍历结果集

select t.bbs_id BBS_ID,t.section_id,t.user_id,t.bbs_name,t.group_type,T.CREATE_TIME into temp.BBS_ID,temp.SECTION_ID,temp.USER_ID,temp.BBS_NAME,temp.GROUP_NAME,temp.CREATE_TIME from table;–第一种赋值方式

temp:=BBS_TYPE(i2.bbs_id,i2.section_id,i2.user_id,i2.bbs_name,i2.group_type,i2.create_time);–第二种赋值方式

v_test.extend();–不清楚,有点像java中的初始化一个数组单位

v_test(v_test.count):=temp;–将临时变量的值存入数组中

end loop;

 return v_test;

 END;

在hibernate中 使用select * from table(bbs_select(userid,secid)语句获得展开的结果集,

SQLQuery.setResultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP);–存入Map

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160765.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 【 Linux学习】SSH连接时出现Host key verification failed的原因及解决方法以及ssh-keygen命令的用法

    【 Linux学习】SSH连接时出现Host key verification failed的原因及解决方法以及ssh-keygen命令的用法一、问题描述今天下午使用ssh连接其他服务器进行scp操作的时候,提示失败,如下所示:[root@localhostbackups]#scproot@172.xxx.xxx.xxx:/data/gitlabData/backups/1539717714_2018_10_17_9.4.3_gitlab_backup.tar.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@……

    2022年10月21日
  • 每天一道算法_4_Hangover

    此系列刚开始两天就被十一假期打断了,去山西玩了几天,今天刚回来,为了弥补一下心里的貌似隐隐作痛的愧疚感,补上一刀。今天的题目是 Hangover,如下: DescriptionHow far can you make a stack of cards overhang a table? If you have one card, you can create a max

    2022年3月10日
  • 拆解滴滴大脑 叶杰平谈出行领域算法技术

    拆解滴滴大脑 叶杰平谈出行领域算法技术近日,滴滴研究院副院长叶杰平在上海一场内部分享会上详细解读了滴滴大脑,这是外部首次窥探到较为完整的滴滴算法世界,并且一直潜水的产品“九霄”也首次露出真容。滴滴出行研究院副院长叶杰平滴滴大脑由三部分组成叶杰平将滴滴大脑这个智能系统分为三部分,分别是大数据、机器学习和云计算。其中大数据就像工业革命时代的煤一样举足轻重,人工智能需要数据进行训练,纵观应用级深度学习的成功案例,他们都获得了海量数据,…

    2022年5月5日
  • MFC应用程序——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件「建议收藏」

    MFC应用程序——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件「建议收藏」标签控件应用【Tab Control 标签控件】 标签控件也比较常见。它可以把多个页面集成到一个窗口中, 每个页面对应一个标签,用户点击某个标签时,它对应的页 面就会显示。 使用标签控件我们可以同时加载多个有关联的页面,用 户只需点击标签即可实现页面切换,方便灵活的进行操作。 每个标签除了可以显示标签文本,还可以显示图标。 标签控件相当于是一个页面的容器,可以容纳多个对话 框,而且一般也只容纳对…

    2022年8月18日
  • DHCP协议详解

    DHCP协议详解文章目录什么是DHCPDHCP协议DHCP报文种类DHCP报文格式DHCP工作流程IP地址分配方式租约表工作流程服务器处理流程什么是DHCPDHCP(DynamicHostConfigurationProtocol,动态主机配置协议),前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,统一使用两个IANA分配的端口:67(服务器端),68(客户端)。DHCP通常被用于局…

    2022年5月10日
  • HTML文件的注释及其快捷键

    HTML文件的注释及其快捷键                                       <!–注释内容–>                   快捷键:ctrl+?…

    2022年4月29日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号