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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 域名怎样实现自动跳转网页_域名

    域名怎样实现自动跳转网页_域名自动转向(Auto-Redirecting),也叫自动重定向。自动跳转,指当访问用户登陆到某网站时,自动将用户转向其它网页地址的一种技术。转向的网页地址可以是网站内的其它网页,也可以是其它网站。通常情况下,浏览器会收到一个网页,该页面含有自动加载一其它网页的代码。该页面有可能在服务器端被转换,这样的话,浏览器只收到一个页面,而自动转向往往意味着浏览器收到的页面具有自动将访问用户送至其它页面的功能。

    2022年10月4日
    2
  • VMware——VMware Tools的介绍及安装方法

    VMware——VMware Tools的介绍及安装方法VMware——VMwareTools的介绍及安装方法一、VMwareTools的作用二、VMwareTools的安装步骤参考文章一、VMwareTools的作用1.最大的好处是可以直接把windows界面的文件拖进linux虚拟机内。2.鼠标可以直接从虚拟机移动到windows等等好处。二、VMwareTools的安装步骤首先把linux虚拟机关机或退出,然后点击“编辑虚拟机设置”。点击CD/DVD,选择使用物理驱动器–自动检测。运行虚拟机虚拟机-安装vm

    2022年5月10日
    54
  • pycharm2021.11.3永久激活_最新在线免费激活

    (pycharm2021.11.3永久激活)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月28日
    58
  • vr全景照片app(vr图片场景)

    【Android开发VR实战】一.给用户呈现一个360°全景图片VR即VirtualReality虚拟现实。虚拟现实技术是一种可以创建和体验虚拟世界的计算机仿真系统它利用计算机生成一种模拟环境是一种多源信息融合的交互式的三维动态视景和实体行为的系统仿真使用户沉浸到该环境中。那么,如何在Android中去开发VR功能的APP呢?我们利用谷歌提供的开源SDK去实现一个360°全景图片的功

    2022年4月15日
    63
  • navicate15 激活码_在线激活

    (navicate15 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0VOERWDQ5R-eyJsaWN…

    2022年3月31日
    134
  • 【找规律】CodeForce #258 Problem A——Game With Sticks[通俗易懂]

    【找规律】CodeForce #258 Problem A——Game With Sticks

    2022年1月29日
    47

发表回复

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

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