oracle如何创建存储过程和调用
oracle存储过程的创建语法
create or replace procedure 存储过程名称
(
--定义输入、输出参数--
参数名1 in 参数类型,
参数名2 in 参数类型,
参数名3 in 参数类型,
参数名4 out 参数类型
)
as
--定义变量--
--变量名 变量数据类型;如:
-- numCount integer;
begin
--处理方法-
end;
上面我们创建一个处理加、减、乘、除计算的函数,那么我们也可以建成存储过程
/*****
** 创建加、减、乘、除计算的存储过程
**输入参数: 数字1,数字2,计算类型
**输出参数: 数字3
*****/
create or replace procedure Proc_Test
(
--定义输入、输出参数--
num_A in integer,
num_B in integer,
numType in integer,
num_C out integer
)
as
--定义变量--
-- numCount integer;
-- numStr varchar(20);
begin
--判断计算类型--
if numType=1 then
num_C := num_A + num_B;
elsif numType=2 then
num_C := num_A - num_B;
elsif numType=3 then
num_C := num_A * num_B;
elsif numType=4 then
num_C := num_A / num_B;
else
--其它处理
dbms_output.put_line('其它处理');
end if;
end;
那么如何调用存储过程
declare num_C integer;
begin
--调用存储过程---
Proc_Test(3,4,3,num_C);
dbms_output.put_line('输出结果:'|| num_C );
end;
输出结果

那么,如果我们要在存储过程调用函数,是怎么处理的呢?
create or replace procedure Proc_Test
(
--定义输入、输出参数--
num_A in integer,
num_B in integer,
numType in integer,
num_C out integer
)
as
--定义变量--
-- numStr varchar(20);
begin
/* --判断计算类型--
if numType=1 then
num_C := num_A + num_B;
elsif numType=2 then
num_C := num_A - num_B;
elsif numType=3 then
num_C := num_A * num_B;
elsif numType=4 then
num_C := num_A / num_B;
else
--其它处理
dbms_output.put_line('其它处理');
end if;*/ --调用函数 并赋值到num_C
num_C:=fun_Test(num_A,num_B,numType);
end;
只要把处理过程放到函数中,存储过程调用函数就可以了
再次调用的结果
declare num_C integer;
begin
--调用存储过程---
Proc_Test(12,2,4,num_C);
dbms_output.put_line('输出结果:'|| num_C );
end;
输出结果

oracle如何创建存储过程和调用的更多相关文章
- Oracle数据库连接、存储过程及调用
Oracle数据库连接.存储过程及调用 1. 定义一个存储过程 create or replace procedure getuser(eid in number, na out varchar, e ...
- Mysql5.7创建存储过程中调用自定义函数报错Not allowed to return a result set from a function
因为很多存储过程都会共用一段sql语句,所以我把共用的sql封装成一个自定义函数 AddCapital(); 然后通过存储过程调用,创建存储过程会报错1415,Not allowed to retur ...
- mysql创建存储过程及调用
创建存储过程简单示例: DELIMITER //CREATE PROCEDURE ccgc()BEGINSELECT * FROM TEXT;SELECT * FROM s_user;END//DEL ...
- PL SQL 存储过程 SQL SERVER创建存储过程及调用,Oracle创建存储过程及调用
Oracle使用存储过程实例: 例1: //查出表字段赋值给存储过程变量 create proc proc_stu @sname varchar(20), //默认是输入参数(input),另外还有两 ...
- Oracle 10g实现存储过程异步调用
DBMS_JOB是什么?DBMS_JOB是Oracle数据库提供的专家程序包的一个.主要用来在后台运行程序,是数据库中一个极好的工具. 可用于自动调整调度例程任务,例如分析数据表,执行一些归档操作,清 ...
- oracle创建函数和调用存储过程和调用函数的例子(区别)
创建函数: 格式:create or replace function func(参数 参数类型) Return number Is Begin --------业务逻辑--------- End; ...
- J2EE之oracle、mysql存储过程调用
最近几天在研究hibernate.JPA对存储过程的调用,主要是针对有返回结果集的存储过程的调用方法,个人感觉存储过程是个好东西,虽然说heibernate对数据访问封装的比较不错,再加上他的缓存机制 ...
- Oracle通用分页存储过程的创建与使用
Oracle通用分页存储过程的创建与使用 1.创建Oracle包的定义.使用 REF CURSOR 数据类型来处理 Oracle 结果集.REF CURSOR 是一个指向 PL/SQL 查询所返回的结 ...
- Mybatis调用Oracle中的存储过程和function
一.Mybatis调用存储过程 1 在数据库中创建以下的存储过程create or replace procedure pro_hello(p_user_name in varchar2,p_resu ...
随机推荐
- DB2数据库常用的函数
1.value函数 语法value(表达式1,表达式2)value函数是用返回一个非空的值,当其第一个参数非空,直接返回该参数的值,如果第一个参数为空,则返回第一个参数的值. eg:表示如果T1.ID ...
- String<-->int
String s = "123); int a = Integer.parseInt(s); String b = String.valueOf(a); Integer i = 100; 自 ...
- leetCode 字符串相关问题
125. 验证回文串 /* * 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. * 输入: "A man, a plan, a canal: Panama& ...
- newJob_newFell
雄关漫道真如铁,而今迈步从头越. 不求闻达于诸侯,但求无愧于初心.
- 【视频合集】极客时间 react实战进阶45讲 【更新中】
https://up2.v.sharedaka.com/video/ochvq0AVfpa71A24bmugS5EewhFM1553702519936.mp4 01 React出现的历史背景及特性介绍 ...
- Spring AOP 简介
Spring AOP 简介 如果说 IoC 是 Spring 的核心,那么面向切面编程就是 Spring 最为重要的功能之一了,在数据库事务中切面编程被广泛使用. AOP 即 Aspect Orien ...
- k8s基本对象及架构
一.基本对象 pod pod是最小的部署单元,一个pod由一个或多个容器组成,pod中的容器共享存储和网络,在同一台docker主机上运行. service service是一个应用服务的抽象,定义了 ...
- 高级shell 脚本
1.函数 函数是一个脚本代码块,你可以为其命名并在代码中任何位置重用.要在脚本中使用该代码块时,只要使用所起的函数名就行了(这个过程称为调用函数).本节将会介绍如何在shell脚本中创建和使用函数 创 ...
- 你不知道的JS(3)来聊聊this
为什么要使用this?什么是this? 来看一段代码 function identify() { return this.name.toUpperCase(); } function speak() ...
- Python 调用 C# dll库最简方法
1.为什么要跨平台编程?双平台编程或多平台编程,只是为提供更好开发更兼容的解决方案的一种手段,编程时服务于产品和客户的,也是因地制宜. 先安装python所需的库clr ,我这里已经安装了,可以去对应 ...