oracle 存储过程返回表,Oracle存储过程返回表集合或者表里指定列集合

已有好几年,没有碰过存储过程了,最近因为项目需要,故重新捡起来。看别人写的存储过程特别优雅,一到自己手上就错误百出,很有感慨。

需求:就是针对select * from  A;建一存储过程返回结果集

编写测试用例:

create table test1(

col1 varchar2(10),

col2 varchar2(10)

);

insert into test1 values('a','a');

insert into test1 values('b','b');

insert into test1 values('c','c');

insert into test1 values('d','d');

insert into test1 values('e','e');

insert into test1 values('f','f');

create or replace package test_package

is

type cursor_type is ref cursor;

end test_package;

create or replace procedure test_query_info(v_col in varchar2,v_cur out test_package.cursor_type)

is

begin

open v_cur for select col2 from test1 where col1 = v_col;--返回指定列

//open v_cur for select * from test1 where col1 = v_col;--返回所有列

end test_query_info;

编写心得:

第一:存储过程的参数类型,我们平常建立表时,比如name varchar2(20),都会在varchar2后面指定长度,但是在存储过程的参数里不可以这样,不然会创建失败的。

第二:open v_cur for 后面的select语句,必须是完整的一行,不能换行,不然程序会理解成是两行,创建也会失败的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值