【Oracle 学习笔记】Day 3 存储过程及函数

Producedure&Function
create or replace package TestPack is

  -- Author  : ADMINISTRATOR
  -- Created : 2012-4-27 14:01:29
  -- Purpose : 测试
 
  type myCursor is ref cursor;
  
  procedure TestPro(
     p_Cond varchar2,
     p_ReCursor0  out myCursor,
     p_ReCount out number
     ); 
  FUNCTION TestFunc(
    p_MaterialID varchar2
  )return varchar2;

end TestPack;

create or replace package body TestPack is
procedure TestPro  
(
  p_Cond varchar2,
  p_ReCursor0  out myCursor,
  p_ReCount out number
)
is
  v_MySQL varchar2(8000);
Begin
  v_MySQL:='select * from Materials where 1=1 ';
  v_MySQL:=v_MySQL||p_Cond;
  open p_ReCursor0 for v_MySQL;
  select Count(1) into p_ReCount from Materials;
  ENd TestPro;
  
FUNCTION TestFunc(
    p_MaterialID varchar2
  )return varchar2
  is
    Type myCursor is ref cursor;
    p_ReCursor0  myCursor;
    p_ReturnValue varchar2(8000);
  Begin
    select MaterialName into p_ReturnValue from Materials where MaterialID=''||p_MaterialID||'';
    return p_ReturnValue;
    End TestFunc;
end TestPack;

终于整明白了。

原来需要一个cursor来打开进行取数。

相比之下觉得SQL Server更人性化一点,但是估计Java更以一切皆对象这样的理念吧。

再深入的研究还得往后放放,包括游标(当然也比较easy),临时表(总感觉很深奥的样子)。

转载于:https://www.cnblogs.com/Xuhaiyang/archive/2012/04/27/2473640.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值