博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个oracle存储过程
阅读量:5101 次
发布时间:2019-06-13

本文共 1498 字,大约阅读时间需要 4 分钟。

 打开plsql,在packages文件夹里新建存储过程

在sql窗口中运行如下语句

create or replace package SY_USER_PKG1 is

TYPE MYCURSOR IS REF CURSOR;

--自己写的测试存储过程

PROCEDURE T_CHCODE1
(
v_phone IN VARCHAR2,
v_userType IN NUMBER,
v_type IN NUMBER,
v_err_code OUT NUMBER
);
end SY_USER_PKG1;

则会在packages文件夹下出现这个存储过程标记,就相当于java中的一个接口吧!

然后:再写具体的存储过程,就相当于java中的接口实现类吧

create or replace package body SY_USER_PKG1 is

PROCEDURE T_CHCODE1
(
v_phone IN VARCHAR2,
v_userType IN NUMBER,
v_type IN NUMBER,
v_err_code OUT NUMBER
)
IS
v_userCount NUMBER;
BEGIN

IF v_type=1 THEN

SELECT COUNT(1) INTO v_userCount FROM t_user_register_info A WHERE A.ACCOUNT=v_phone and a.user_type_id=v_userType;
IF v_userCount=1 THEN
v_err_code:=1;
else
v_err_code:=0;
END IF;
end if;

IF v_type=2 THEN

SELECT COUNT(1) INTO v_userCount FROM t_user_register_info A WHERE A.ACCOUNT=v_phone and a.user_type_id=v_userType;
IF v_userCount=0 THEN
v_err_code:=2;
else
v_err_code:=0;
END IF;
END IF;

end T_CHCODE1;
end SY_USER_PKG1;

这段代码按F8运行后,在packages bodyies文件夹下会出现这个

这就是一个完整的存储过程了,有接口,有实现

下面让我们来测试一下

点击右键,会有测试选项

填入参数,如上图,F8运行,结果如下图

 

可以看到拿到了返回的结果值 0

然后就可以在java代码中调用了,在mapper配置文件中是这样的:

<insert id="chcode" parameterType="java.util.Map" statementType="CALLABLE">

<![CDATA[
{call SY_USER_PKG1.T_CHCODE1(
#{v_phone,mode=IN,jdbcType=NVARCHAR},
#{v_userType,mode=IN,jdbcType=NUMERIC},
#{v_type,mode=IN,jdbcType=NUMERIC},
#{v_err_code,mode=OUT,jdbcType=NUMERIC}
)
}
]]>

</insert>

在service实现类中直接调用

 

 oCode就是拿到的返回值了。

至此,一个调用存储过程的流程结束了!

 

转载于:https://www.cnblogs.com/zhaoblog/p/5756379.html

你可能感兴趣的文章
windows7内核驱动开发试验环境配置
查看>>
全栈工程师技能图谱
查看>>
coredump文件设置及调试
查看>>
Android 获取当前应用的版本号和当前系统的版本号
查看>>
集百家言,理百家事!
查看>>
SharePoint 开发学习——简介
查看>>
lucas 定理,组合数取模
查看>>
Java——TreeSet中Comparable/Comparator比较器
查看>>
Android之ViewPager
查看>>
全面理解Javascript闭包和闭包的几种写法及用途
查看>>
【MySQL高可用架构设计】(一)-- mysql复制功能介绍
查看>>
如何使用USSD命令设置呼叫转移
查看>>
XC164单片机TwinCAN模块调试心得 (转)
查看>>
初识CUDA
查看>>
android-常用控件-<四>
查看>>
pring MVC过滤器-HttpPutFormContentFilter
查看>>
Linux之ulimit详解(整理)
查看>>
前端学习blog
查看>>
自己常用网址导航
查看>>
Texstudio中文乱码问题
查看>>