继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

取存过和函数的返回值

android零基础入门
关注TA
已关注
手记 288
粉丝 97
获赞 603

目录

一、取函数的返回值

1.取函数的系统类型数据

2.取函数的自定义类型数据

3.取函数的自定义类型数据集合

二、取存储过程的返回值

1.取存过的系统类型数据

2.取存过的自定义类型数据

3.取存过的自定义类型数据集合

 

一、取函数的返回值

0.创建自定义类型

复制代码

--自定义类型create or replace type mytype as object(  str1 number,  str2 varchar2(10));--自定义类型集合create or replace type  mytype_list as table of mytype;

复制代码

 

1.取函数的系统类型数据

复制代码

--1函数 返回字符串create or replace function fun_ceshi1(num1 number, num2 number)  return varchar2 as  str1 varchar2(111);begin  str1 := '测试时。。。';  return str1;end;--取值select fun_ceshi1(1,1) from dual;

复制代码

 

2.取函数的自定义类型数据

复制代码

--2函数 返回自定义类型create or replace function fun_ceshi2(num1 number, num2 number)  return mytype as  my mytype;begin select mytype(ename1, ename2)   into my   from (select t.empno ename1, t.ename ename2 from emp t where rownum=1);  return my;end; --select fun_ceshi2(1,1) from dual;

复制代码

 

3.取函数的自定义类型数据集合

复制代码

--3函数 返回自定义类型集合create or replace function fun_ceshi3(num1 number, num2 number)  return mytype_list as  my mytype_list;begin select mytype(ename1, ename2) BULK COLLECT   into my   from (select t.empno ename1, t.ename ename2 from emp t);  return my;end; --select * from table(fun_ceshi3(1,1));

复制代码

 

二、取存储过程的返回值

1.取存过的系统类型数据

复制代码

--1存过 返回字符串create or replace procedure pro_ceshi1(num1 number,                                      num2 number,                                      num3 out varchar2) asbegin  select '字符串num' into num3 from dual;end;--调用declare  num3 varchar2(111);begin  pro_ceshi1(1, 1, num3); dbms_output.put_line(num3);end;

复制代码

 

2.取存过的自定义类型数据

复制代码

--2存过 返回自定义类型create or replace procedure pro_ceshi2(num1 number,                                      num2 number,                                      strType out mytype) asbegin  select mytype(ename1, ename2)   into strType   from (select t.empno ename1, t.ename ename2 from emp t where rownum=1);end;--调用declare  strType mytype;begin  pro_ceshi2(1, 1, strType);  dbms_output.put_line(strType.str1 || '  ' || strType.str2);end;

复制代码

 

3.取存过的自定义类型数据集合

复制代码

--3存过 返回自定义类型集合create or replace procedure pro_ceshi3(num1 number,                                      num2 number,                                      strType out mytype_list) asbegin   select mytype(ename1, ename2) BULK COLLECT   into strType   from (select t.empno ename1, t.ename ename2 from emp t);end;--调用declare  strType mytype_list;  cursor c_c is    select * from table(strType);begin  pro_ceshi3(1, 1, strType);  for v_r in c_c loop    dbms_output.put_line(v_r.str1 || '  ' || v_r.str2);  end loop;end;

复制代码

 

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP