数据库技术:oracle RETURNING 子句使用方法

returning 自己通常结合dml 语句使用。(insert update delete)

使用方法:

update table_name set expr1 returning column_name into xxx

insert: 返回的是添加后的值 update:返回时更新后的值

delete:返回删除前的值

returning 可以再sqlplus 和plsql中使用

如果是plsql就如上面的代码,xxx为声明的变量名

如果是sqlplus,xxx 可以为变量,即

variable var_name varchar2(10) update table_name set expr1 returning column_name into :var_name;

这里的 :var_name 使用的是绑定变量

另外,returning 貌似可以与 return通用

insert into values 支持 returning

insert into select、 和merge 语句 不支持 returning

例子1:

建表语句:

create table test111( a1 varchar(10), a2 varchar(20) ); create sequence test111_s1 start with 1 increment by 1 cache 20 maxvalue 999999999999999999999999999 cycle;

declare seq number; begin insert into test111 values(test111_s1.nextval,\’aaa2\’) returning a1 into seq; dbms_output.put_line(seq); end; declare seq number; begin insert into test111 values(test111_s1.nextval,\’aaa3\’); select test111_s1.currval into seq from dual; commit; dbms_output.put_line(seq); end;

例子2: 再另外,returning 可以与bulk collect 结合(批量绑定, 另外一个是 forall)

declare type table_type is table of column_name%type; v_tab table_type; begin update table_name set expr1 returning column_name bulk collect into v_tab; for i in v_tab.first .. v_tab.last loop dbms_output.put_line( l_tab(i)); end loop; commit; end;

ora-06547:insert,update或delete语句必须使用returning子句

产生这个错误的原因:

returning into子句作用于insert,update,delete,上而select则不行,应该用into。

报错的存储如下:

create or replace procedure p_stu_info(s_id number, s_name varchar2) is v_name varchar2(10); v_age number; v_errmsg varchar2(200); begin execute immediate \’select name,age from student_test where id=:1 and name=:2\’ using s_id, s_name returning into v_name, v_age; dbms_output.put_line(v_name || \’的年龄为:\’ || to_char(v_age)); exception when others then v_errmsg := substrb(sqlerrm, 1, 200); dbms_output.put_line(\’找不到相应学生\’); end p_stu_info;

改成下面这样就ok了:

create or replace procedure p_stu_info(s_id number, s_name varchar2) is v_name varchar2(10); v_age number; v_errmsg varchar2(200); begin execute immediate \’select name,age from student_test where id=:1 and name=:2\’ into v_name, v_age using s_id, s_name; dbms_output.put_line(v_name || \’的年龄为:\’ || to_char(v_age)); exception when others then v_errmsg := substrb(sqlerrm, 1, 200); dbms_output.put_line(\’找不到相应学生,错误原因:\’||v_errmsg); end p_stu_info;

需要了解更多数据库技术:oracle RETURNING 子句使用方法,都可以关注数据库技术分享栏目—猴子技术宅(www.ssfiction.com)

本站无法对海量内容真伪性鉴别,请勿相信本站任何号码,邮件,站外网址等信息,如有需要,请自行甄别。版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至net@163.com举报,一经查实,本站将立刻删除。
(1)
上一篇 2022年8月8日 上午10:30
下一篇 2022年8月8日 上午10:42

相关推荐

  • 料峭的意思解释是什么(料峭的意思)

    您好,今天帅帅来为大家解答以上的问题。料峭的意思解释是什么,料峭的意思相信很多小伙伴还不知道,现在让我们一起来看看吧! 1、料峭春风吹酒醒的“料峭”的意思是:微寒,形容初春的寒冷。…

    2023年10月30日
  • 马徐骏(关于马徐骏的介绍)

    大家好,小节来为大家解答以上的问题。马徐骏,关于马徐骏的介绍很多人还不知道,现在让我们一起来看看吧! 1、马徐骏,1981年9月30日出生于中国上海市,是专栏作者、演讲培训师、翻译…

    2天前
  • 关机代码大全(关机代码vbs)

    您好,今天帅帅来为大家解答以上的问题。关机代码大全,关机代码vbs相信很多小伙伴还不知道,现在让我们一起来看看吧! 1、这个我不会。 2、 电脑复定时关制机,我使用的是定时关机软件…

    2023年1月12日
  • 宝骏530发动机型号(宝骏530发动机型号ljo是哪个国家的)

    Jun 530发动机型号 截至2019年9月28日,在售的宝骏530最新款为2019款。以2019款为例:宝骏530搭载1.5T直列4缸涡轮增压发动机,分为几种调校,具体为: 匹配…

    2022年12月4日
  • 叠氮化铅怎么制造(叠氮化铅)

    您好,今天帅帅来为大家解答以上的问题。叠氮化铅怎么制造,叠氮化铅相信很多小伙伴还不知道,现在让我们一起来看看吧! 1、飞秒检测发现Pb(N3)2简称氮化铅,呈白色结晶,有α和β两种…

    2023年10月27日
  • 完美世界柳神级别(完美世界柳神身份)

    您好,今天帅帅来为大家解答以上的问题。完美世界柳神级别,完美世界柳神身份相信很多小伙伴还不知道,现在让我们一起来看看吧! 1、完美世界柳神境界是仙王。 2、柳神,辰东所著东方玄幻小…

    2023年11月14日
  • 血战阿拉曼全集(血战阿拉曼)

    您好,今天帅帅来为大家解答以上的问题。血战阿拉曼全集,血战阿拉曼相信很多小伙伴还不知道,现在让我们一起来看看吧! 1、电影,背景是发生在二战期间北非的阿拉曼战役,是一场举世闻名的坦…

    2023年12月31日
  • 六度分隔理论的结论(六度分隔理论)

    您好,今天帅帅来为大家解答以上的问题。六度分隔理论的结论,六度分隔理论相信很多小伙伴还不知道,现在让我们一起来看看吧! 1、你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,…

    2023年11月7日
  • 深蓝儿童是什么意思

    家里有深蓝儿童是非常幸运的事。要理解深蓝儿童就要重新认识理解生命。他可能知道自已该做什么,一切顺其自然就好,家长除了支持和理解他以外也不用做什么。深蓝儿童是老师,是具备改变世界的能…

    2022年11月25日
  • 张晓琦(关于张晓琦的介绍)

    大家好,小节来为大家解答以上的问题。张晓琦,关于张晓琦的介绍很多人还不知道,现在让我们一起来看看吧! 1、张晓琦,男,1974年出生,博士、教授、博士生导师。 2、 “教育部新世纪…

    2023年12月4日
  • 企鹅有毛吗(成年企鹅是绒毛吗)

    最近的那须野生动物王国不仅有兔狲小奶猫可以看,还有6月份刚出生的企鹅宝宝也是毛绒绒的!不过这一脸没睡醒的样子,好像满脸写着:老子不想营业,只想睡觉……

    2022年10月23日 投稿
  • 左脚的英语是什么原因

    左脚的英语是什么原因 Left foot的英文是left foot,它是指人体的左脚。左脚指的是人体的左侧的脚,它是从上往下的第一个肢体部位。它可以被分为足跟、脚踝、小腿、大腿、膝…

    2023年7月26日
  • 双盈是什么意思呢(双盈是什么意思)

    您好,今天帅帅来为大家解答以上的问题。双盈是什么意思呢,双盈是什么意思相信很多小伙伴还不知道,现在让我们一起来看看吧! 1、双赢,拼音【shuāng yíng】双方都能得益,就是双…

    2022年12月14日
  • 货币战争txt下载(关于货币战争txt下载的介绍)

    大家好,小节来为大家解答以上的问题。货币战争txt下载,关于货币战争txt下载的介绍很多人还不知道,现在让我们一起来看看吧! 1、《货币战争全集》是2009年中国商业出版社出版社的…

    15小时前
  • 明若晓溪大结局吻戏(明若晓溪大结局)

    大家好,小苏来为大家解答以上问题。明若晓溪大结局吻戏,明若晓溪大结局很多人还不知道,现在让我们一起来看看吧! 1、几年后,明小溪在他的新班级里看到了两个转校生。一个是穆刘冰,另一个…

    2024年3月11日

发表回复

登录后才能评论