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表示过程执行失败且有提示信息。

oracle pl/sql编程详细,Oracle框架:PL/SQL编程:相关推荐

  1. oracle快捷语句框架中,Oracle框架:PL/SQL编程:

    PL/SQL编程 一:什么是PL/SQL (1.)PL/SQL体系结构: PL/SQL引擎用来编译和执行,PL/SQL块或子程序,该引擎驻留在Oracle服务器中. (2.)PL/SQL块简介 PL/ ...

  2. 视频教程-赵强老师:Oracle数据库从10g到11g(4)PL/SQL编程基础-Oracle

    赵强老师:Oracle数据库从10g到11g(4)PL/SQL编程基础 毕业于清华大学,拥有超过13年的工作经验. Oracle认证讲师,拥有6年以上授课经验.精通Oracle数据库.中间(Weblo ...

  3. ORACLE PL/SQL编程之二:PL/SQL块结构和组成元素

    2.1 PL/SQL块 PL/SQL程序由三个块组成,即声明部分.执行部分.异常处理部分. PL/SQL块的结构如下: DECLARE --声明部分: 在此声明PL/SQL用到的变量,类型及游标,以及 ...

  4. oracle pl sql注意问题,Oracle PL/SQL编写PL/SQL代码的注意事项

    (1)几个值得注意的关键字(2)变量常量赋值注意: ---------------------------------------------------------------------[@mor ...

  5. ORACLE数据库之PL/SQL触发器、rownum、动态SQL、数据库之视图与索引

    WHEN子句说明触发约束条件.Condition为一个逻辑表达时,其中必须包含相关名称,而不能包含查询语句,也不能调用PL/SQL函数.WHEN子句指定的触发约束条件只能用在BEFORE和AFTER行 ...

  6. PL/SQL中查询Oracle大数(17位以上)时显示科学计数法的解决方法

    PL/SQL中查询Oracle大数(17位以上)时显示科学计数法的解决方法 参考文章: (1)PL/SQL中查询Oracle大数(17位以上)时显示科学计数法的解决方法 (2)https://www. ...

  7. PL/SQL developer连接oracle出现“ORA-12154:TNS:could not resolve the connect identifier specified”问题的解决

    PL/SQL developer连接oracle出现"ORA-12154:TNS:could not resolve the connect identifier specified&quo ...

  8. PL/SQL Developer结合oracle精简客户端配置说明

    oracle 11g精简版客户端配置 ORACLE 一般情况下都会部署在服务器上,而在客户端上需使用PL/SQL Developer 等连接工具连接服务器上的 ORACLE . 而此时往往需要在客户端 ...

  9. oracle 12c sql图形化,Oracle 12c PL/SQL程序设计终极指南

    Oracle 12c PL/SQL程序设计终极指南 作者:孙风栋;王澜;郭晓惠 出版日期:2015年06月 文件大小:11.73M 支持设备: ¥60.00在线试读 适用客户端: 言商书局 iPad/ ...

最新文章

  1. 《Python for Data Analysis》之 Series
  2. CAMB输出保留小数位数问题
  3. SVN分支与合并【超详细的图文教程】(转载)
  4. linux ipv6 组播地址,ipv6组播地址是什么意思
  5. TP5的目录常量和路径
  6. 周昌印:忘记技术 从用户与市场考虑问题
  7. redis分布式锁java代码_基于redis实现分布式锁
  8. RocksDB 写入流程详解
  9. flex组件使用【PopUpButton】
  10. Kubernetes—动态存储卷配置(StorageClass资源)(十二)
  11. react脚手架 显示npm不知内部命令_第一章 React开发环境搭建
  12. 苹果 “Find My” 功能中的漏洞可暴露用户的位置信息
  13. OpenGL基础50:HDR
  14. VS2010远程调试
  15. 简述ip地址的abc类如何划分_网络IP地址“主要”分为ABC三类
  16. 登录虚拟服务器,虚拟化服务器登录及操作方法说明
  17. 重庆计算机一级跟全国计算机一级都考什么,全国计算机等级考试一级都考什么内容?...
  18. 爬虫_抓取猫眼电影TOP100
  19. [OpenGL] 动态积雪效果
  20. Python——河神小游戏

热门文章

  1. 10G_Ethernet_04 10G Ethernet Subsystem IP 的快速验证(万兆以太网IP的快速验证)
  2. 自定义linux命令工具栏,如何自定义Mac终端并使其更有用!
  3. c语言程序的入口是哪部分,C语言入口函数和LD_PRELOAD环境变量
  4. Questasim10.6c下载与安装教程
  5. linux mysql 最小安装,Linux最小化安装之安装mysql
  6. 联想拯救者y7000电池耗电快_游戏新选择:联想2020款拯救者Y7000/R7000爆料
  7. android可扩展列表,android-可扩展列表视图未显示
  8. react 动态修改路由_reactjs – 如何动态添加重定向到反应路由器?
  9. [画图]几何图形绘制测试
  10. 【软件构造】第一章 软件构造基础(1)