为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle框架:PL/SQL编程:

标签:
Oracle

PL/SQL编程

一:什么是PL/SQL

(1.)PL/SQL体系结构:
PL/SQL引擎用来编译和执行,PL/SQL块或子程序,该引擎驻留在Oracle服务器中。
(2.)PL/SQL块简介
PL/SQL是一种块结构语音,它将一组语句块放在一个快中。
(3.)运算符和表达式:
PL/SQL语音支持操作符包含关系运算符,一般运算符和逻辑运算符,与SQL语音类似。
(4.)常量和变量声明
在PL/SQL块的可执行部分引用变量和常量前,必须先对其进行声明。变量和PL/SQL块的部分声明,在PL/SQ块的 可执行部分被使用。语法如下:
Variable_name data_type 变量范围 变量的初始值;
(5.)注释:
在PL/SQL可以使用如下两种注释符号:
‘--’双减号
‘/ /’

在PL/SQL快中的可执行部分引用的变量和常量前,必须先对其声明

语法:variable_name data_type[(size)][:=init_value];
变量名称 数据类型 size 指定变量的初始值

二:PL/SQL数据类型
(1.)Oracle使用变量类型图

(2.)LOB数据类型
(3.)属性类型:
%Type:定义一个变量,其数据类型与已经定义的某个数据变量(尤其是表的某一列)的数据类型相一致这时可以使用%Type (优点:可以不必知道所引用的数据库列的数据类型。所引用的数据类型可以实现时改变,容易保持一致,不必修改PL/SQL程序)
%ROWTYPE:返回一个记录类型,其数据类型和数据库表的数据结构相一致,这时可以使用%ROWTYPE.(优点:可以不必知道所引用数据库列的个数和数据类型。所引用的数据库中列的个数和数据库类型可以实现改变,容易保持一致,不用修改PL/SQL程序)
三:PL/SQL控制语句
(1.)条件控制:if语句如下:
If 布尔表达式 then
PL/SQL和SQL语句
End if;
If 布尔表达式 then
PL/SQL和SQL语句
Elst
其他语句
End if;

If 布尔表达式 then
PL/SQL和SQL语句
Elsif 其他布尔表达式 then
其他语句
Elsif 其他布尔表达式 then
Else
其他语句
End if;

(2.)case 语法如下
----------------格式1----------------
Case 条件表达式
When 条件表达式1 then
语句段1
When 条件表达式2 then
语句段2
…………….
When 条件表达式n then
语句段n
End case;
----------------格式2----------------
Case 条件表达式
When 条件表达式1 then
语句段1
When 条件表达式2 then
语句段2
…………….
When 条件表达式n then
语句段n
Else 语句段
End case;
(3.)循环控制:Loop循环语法如下:
Loop
要执行的语句;
Exit when 条件语句 -------条件满足时跳出循环
End loop;
While循环语法如下:
While 布尔表达式 loop
要执行的语句;
End loop;

For循环语法如下
For 循环计数器 In reverse 下限…….上限 loop
要执行的语句
End loop;
四:异常处理:
(1.)预定义异常:

(2.)处理用户自定义异常:
在PL/SQL块的定义部分定义的异常情况
异常情况 exceptlon
抛出异常情况:
Raise 异常情况
在PL/SQL块的异常情况处理部分对异常情况做出的相应处理
五:游标:
(2.)游标的分类
隐式游标:返回单行记录
显示游标:返回多行记录
显示游标使用步骤:
(1.)声明游标:cursor 名称 is
(2.)打开游标:open 名称;
(3.)提取游标:fetch 名称 into variables;
(4.)关闭游标: close 名称;
(3.)使用循环游标简化游标的读取语法:
For 声明记录变量 in 名称
Loop
Executable_statements
End loop;
(4.)No_data_found和notfound的区别
Select………into语句返回0条记录和多条记录是触发no_data_found
当update或delete语句的where子句未找到时,触发%notfound
在提取循环中用%notfound或%found来确定循环的退出条件,而不用no_data_fuond
六:存储过程:
子程序的组成:
(1.)声明部分:类型,游标,常量,变量,异常,嵌套子程序声明
(2.)可执行部分:可执行部分包括赋值,控制执行过程存储过程中出现的异常
(3.)异常处理部分:异常处理程序,负责处理执行存储过程中出现的异常。
子程序的优点如下:
模块化,可重用性,可维护性,安全性。
(4.)存储过程用法:
1.创建存储过程:语法如下:
Create 语句 procedure 存储名称
参数列表
Is|as
局部声明
Begin
可执行语句
exception
异常处理程序
End 存储名称;
2.调用存储过程
(1.)用命令调用
语法如下:
Exce 过程名称 参数列表;
(2.)参数的传递方式三种:
按位置传递
Exec add_emp(1111,‘mary’,2000,’‘manager’,10);
按名称传递

混合方式传递
3.存储过程参数模式语法如下:
存储名称 in|out|in out datatype :=赋值;
4.存储过程访问权限
-----授予a执行emp的权限
Grant execute no add_emp to a
-------撤销权限
Revoke execute on add_emp from a;
5.删除存储过程
Drop procedure 存储名称;
七:存储过程的调试与跟踪:
(1.)在sql*plus下调试
(2.)用户PL/SQL Developer工具调试

其中on_flag有三种情况:
0表示过程执行成功但无提示信息。
大于0表示过程执行成功但有提示信息。
*小于1表示过程执行失败且有提示信息。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消