mybatis 调oracle 一些心得体会

先明白一些知识点

 1. oracle 有函数 和存储过程区分

2. 存储过程和函数的参数 有 in,out,inout型,有游标类型

3. 函数有返回值

最近在搞数据库的调sql语句方法,简直了,心累

1. oracle 的函数和存储过程的调法不一样

  存储过程:

  可以直接 call  ProcName()

函数的调法 

declare nRet number; 
begin nRet := ProcName(Name1,Name2,Name3);
dbms_output.put_line(nRet);
end;

2.如何获取oracle函数的返回值  这个就是我们今天的一个重点了

(1)用select procName() 取值,可以取函数值,但是不试用有参数的方法

(2)在上面调法最后添加 select nRet from ...  这样取不到这个值,由于oracle机制,不能直接查询

(3) 把值放到游标里  ---我这边验证了取不了

 (4)用自定义异常抛出nRet ---是不是特别傻, 但是能取出来

(5)把nRet 存进 temp表,然后查询 -----验证可以,但是涉及额外的查询临时表,删除

 (6)单独写了一个函数,把nRet 传进去,Out参数出来  --- 目前在使用的方法

CREATE OR REPLACE FUNCTION pfn_ConvertToOutPut(i_sIn varchar2, i_sOut out varchar2 )
RETURN NUMBER
AS
BEGIN
  i_sOut := i_sIn;
  return 0;
END;

  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值