oracle uniall实例,Oracle存储过程语法详解—及8道案例练习

本文详述了Oracle数据库的存储过程,包括创建、变量、参数、条件语句、循环语句和游标的使用。通过多个实战案例,介绍了如何在存储过程中操作数据,如赋值、判断和循环。此外,还探讨了存储过程的特点和与其他数据库系统的语法差异。
摘要由CSDN通过智能技术生成

4499814ed9ec

这企鹅真可爱

本文主要讲解ORACLE数据库的存储过程,如果想学习了解MYSQL数据库的存储过程可参考本篇文章mysql存储过程学习笔记,在网上找过很多ORACLE存储过程的文章,有语法、有练习题类。

都不是很友好吧,所以决定写一篇针对入门的文章,文章结构是参考的一篇mysql存储过程。

文章目录:

一、创建一个简单的存储过程

二、存储过程的变量

三、存储过程参数

四、存储过程条件语句

五、存储过程循环语句

六、存储过程游标的使用

七、8道存储过程——案例实战

八、语法及案例使用数据

备注:数据在文章末尾

什么是存储过程

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。

存储过程的特点

1、能完成较复杂的判断和运算

2、可编程行强,灵活

3、SQL编程的代码可重复使用

4、执行的速度相对快一些

5、减少网络之间的数据传输,节省开销

MYSQL和ORACLE存储过程的语法差异还是比较大的,下面我们一起学习ORACLE存储过程的语法吧。

一、创建一个简单的存储过程

1、创建存储过程的简单语法

create procedure 名称 as

begin

.........

end

2、创建一个简单的存储过程

create or replace procedure test1 as

begin

dbms_output.put_line('hello word');

end

3、调用存储过程

call test1()

运行结果如图

4499814ed9ec

二、存储过程的变量

目录

1、先通过一个简单的例子来学习变量的声明和赋值

2、变量分类

2.1、普通变量

2.2、引用变量

2.3、记录型变量

1、先通过一个简单的例子来学习变量的声明和赋值

create or replace procedure select_emp as

--定义变量my_income

my_income varchar(20);

begin

-- 使用select语句给变量赋值,将emp_test 表中worker_no = '200010'的income赋值给变量my_income

select income into my_income from emp_test where worker_no = '200010';

--打印输出变量my_income值

dbms_output.put_line('工资'||my_income);

end;

总结

(1)、在begin程序体前声明变量,变量必须先声明后使用;

(2)、变量具有数据类型和长度,与ORACLE的数据类型保持一致

(3)、变量可以通过select into的方式赋值,也可以通过:=赋值

通过上面的案例,大家对变量有了简单的了解,下面详细介绍一下变量的分类。

2、变量分类

1、普通数据类型(char,varchar2,date,number,boolean,long)

2、特殊变量类型(引用型变量,记录型变量)

引用型变量,变量的数据类型取决表中的数据类型;记录型变量,变量不是接受一个值,是一行值。

声明变量语法:变量名 变量类型(变量长度)

---普通变量 v_name varcar2(20);

---引用型变量 v_income emp_test.income%TYPE;

---记录型变量 v_emp emp_test%ROWTYPE //表示变量v_emp存的是表中emp_test一整行的数据

2.1、普通变量

当我们想使用普通变量的时候,需要先给普通变量命名,制定变量的类型和长度。我们在赋值的时候可以在声明变量的时候直接赋值:=,也可以在程序中复制,通过select语句赋值。

存储过程参数

【示例】打印人员个人信息,包括:工号、工资、部门

create or replace procedure test1 as

//定义变量

my_number varchar2(20); --工号

my_income int := 3000; --声明变量直接赋值

my_depart varchar2(50); --部门

begin

---通过SELECT语句给变量赋值

select '5号部门' into my_depart from dual;

---打印输出

dbms_output.put_line('姓名'||my_number|| '工资'||my_income||'部门'||my_depart);

end ;

4499814ed9ec

变量赋值的方式有两种:

1.直接赋值语句 :=

2.语句复制,使用select……into……赋值:(语法select值into变量)

2.2、引用变量

引用变量变量的类型和长度取决于表中字段的类型和长度,通过表名.列名%TYPE指定变量的类型和长度

例如: v_worker emp_test.worker_no%TYPE

【示例】定义引用变量,打印工号为200010员工的个人信息,包括:工资、部门

--定义引用变量,打印工号为200010员工的个人信息,包括:工资、部门

create or replace procedure test2 as

----一、定义变量

my_income emp_test.income%TYPE;--工资,引用型变量

my_depart emp_test.department%TYPE;--部门,引用型变量

begin

select income,department into my_income,my_depart from emp_test where worker_no='200010';

dbms_output.put_line( '工资'||my_income||'部门'||my_dep

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值