全面复习之SQL(8)-oracle存储过程
来源:互联网 发布:网络安全法的特点 编辑:程序博客网 时间:2024/06/06 16:18
语法:
存储过程
1
2
3
4
5
行1:
CREATE
行2:
IS关键词表明后面将跟随一个PL/SQL体。
行3:
BEGIN关键词表明PL/SQL体的开始。
行4:
NULL
行5:
END关键词表明PL/SQL体的结束
存储过程创建语法:
as
变量1
变量2
Begin
Select
Exception
End;
注意事项:
1,
类型可以使用任意Oracle中的合法类型。
2,
3,
4,
5,
CREATE
(
--定义参数
the_count
)
AS
--定义变量
vs_msg
vs_ym_beg
vs_ym_end
vs_ym_sn_beg
vs_ym_sn_end
--定义游标(简单的说就是一个可以遍历的结果集)
CURSOR
BEGIN
--用输入参数给变量赋初值,用到了Oralce的SUBSTR
TO_DATE
vs_ym_beg
vs_ym_end
vs_ym_sn_beg
vs_ym_sn_end
--先删除表中特定条件的数据。
DELETE
DBMS_OUTPUT.put_line('del上月记录='||SQL%rowcount||'条');
INSERT
SELECT
FROM
GROUP
DBMS_OUTPUT.put_line('ins当月记录='||SQL%rowcount||'条');
--遍历游标处理后更新到表。遍历游标有几种方法,用for语句是其中比较直观的一种。
FOR
END
COMMIT;
--错误处理部分。OTHERS表示除了声明外的任意错误。SQLERRM是系统内置变量保存了当前错误的详细信息。
EXCEPTION
END;
在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别,在视图(VIEW)中只能用AS不能用IS,在游标(CURSOR)中只能用IS不能用AS。
oracle存储过程语法
1
if
create
begin
end
2
For
--
end
(1)
create
Cursor
begin
for
begin
end;
end
end
(2)
--(
i
begin
i
--
for
dbms_output.putline('The
end
3
while
begin
end;
end
E.g
create
begin
while
begin
end;
end
4
首先明确一个概念:Oracle
使用数组时,用户可以使用Oracle
(1)
x
e.g:
create
x
y
end
(2)
create
--
table
end
5.
(1)Cursor
create
cusor_1
begin
select
可使用For
end
(2)SYS_REFCURSOR
create
cursor
name
begin
OPEN
LOOP
end
rsCursor
end
实例
下面写一个简单的例子来对以上所说的存储过程的用法做一个应用:
现假设存在两张表,一张是学生成绩表(studnet)
一张是学生课外成绩表(out_school),
通过存储过程自动计算出每位学生的总成绩和平均成绩,同时,如果学生在课外课程中获得的评价为A
create
rsCursor
commentArray
math
article
language
music
sport
total
average
stdId
record
i
begin
i
get_comment(commentArray);
OPEN
LOOP
fetch
total
for
if
end
end;
end
end
<<continue>>
end
end;
end
--
create
rs
record
stdId
comment
i
begin
open
i
LOOP
record.stdId
recommentArray(i)
i:=i
end
end
--
create
type
type
end
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
在大型数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。
- 全面复习之SQL(8)-oracle存储过程
- oracle 存储过程复习
- 全面复习之SQL(10)-oracle常用函数
- SQL SERVER 存储过程复习
- 全面复习之 SQL(1)
- 全面复习之 SQL (3)-库函数
- 全面复习之SQL(5)-视图
- 全面复习之SQL(9)-oracle多表查询,连接查询
- sql语句存储过程简单复习
- oracle之存储过程
- Oracle之存储过程
- Oracle之存储过程
- Oracle之存储过程
- Oracle之存储过程
- SQL之存储过程
- SQL之存储过程
- SQL之存储过程
- SQL之存储过程
- 自定义Dialog时,会遇到dialog wrap_content,这个时候需要手动设置Dialog大小
- 1、字符串的操作
- debian 发行代号
- ssh远程登陆命令
- WPF数据绑定学习
- 全面复习之SQL(8)-oracle存储过程
- Codeforces Round #246 (Div. 2)(B)数学
- unable to start the virtual device the virtual device got no ip address一个解决方法
- 使用MongoDB Shell
- PropertyAnimation属性动画资源 ArgbEvaluator使用
- 自学成才篇:再谈字节流的Read方法
- poj 3411 Paid Roads(DFS)
- 并行计算之路<1>——Hello, CUDA.
- lua三目运算符问题