PL/SQL
来源:互联网 发布:德州力拓软件 编辑:程序博客网 时间:2024/06/09 19:21
什么是PL/SQL?
PL/SQL(Procedural Language/SQL)
一种过程化语言,通过增加编程语言的特点,实现对SQL的扩展
PL/SQL的特点
支持所有SQL的语法
支持case语句,方便的实现循环
通过继承,实现子类具有父类的属性和方法
设置了新了日期类型
PL/SQL的开发及工作环境
PL/SQL的开发环境
Oracle数据库服务器
Oracle开发工具
PL/SQL的工作原理
由PL/SQL引擎接收指令
将指令传递给Oracle数据库服务器执行
PL/SQL语句块
PL/SQL程序是按照块结构进行划分
块是PL/SQL程序的基本单位
PL/SQL声明
使用declare关键字
用于定义变量或者常量
变量命名规范
1.变量名首字母必须是英文字母,其后可以是字母、数字或特殊字符$、#和下划线
2.变量名长度不超过30个字符
3.变量名中不能有空格
表达式和运算符
表达式的分类
数值型
字符型
日期型
布尔型
运算符分类
算数运算符
关系运算符
逻辑运算符
其他运算符
流程控制
条件结构
if-then语句
if-then-else语句
if-then-elsif语句
case语句
while-loop循环语句和for-loop循环语句
PL/SQL的异常处理
--too_many_rows异常set serveroutput on;declare id_v number;begin select id into id_v from temp_tab;exception when too_many_rows --当执行plsql出现too_many_rows异常时 then dbms_output.put_line('查询出多条语句');end;
自定义异常
使用RAISE关键字引发异常
使用RAISE关键字引发异常
使用EXCEPTION关键字处理异常
--自定义异常(手动抛出异常)declare number_v number :=10; test_exception EXCEPTION; --声明异常begin case number_v when 10 then raise test_exception; --抛出异常 else dbms_output.put_line(number_v); end case;exception WHEN test_exception then dbms_output.put_line('抛出异常');end;
应用实例:进行数学除法运算时,当被除数为0时,给出异常提示
--进行数学除法运算时,当被除数为0时,给出异常提示declare num2 number :=0; num_ex exception;begin case num2 when 0 then raise num_ex; else dbms_output.put_line('被除数不是0,可以正常运算'); end case;exception when num_ex then dbms_output.put_line('被除数为0');end;
常用的变量类型
binary_integer:整数,主要用来计数而不是用来表示字段类型number:数字字符
char:定长字符串
varchar2:变长字符串
date:日期
long:长字符串最长2GB
boolean:布尔类型,可以取值true|false和null值
复杂变量
练习题
set serveroutput on;declare type money is record(z_mon number); Z_money money; l_money money;begin -- UPDATE bnkcard set cardmoney= cardmoney-1000 where cardno='1001001'; -- UPDATE bnkcard set cardmoney= cardmoney+1000 where cardno='1001002';--select * from bnkcard; z_money.z_mon :=1500; l_money.z_mon :=300; z_money.z_mon :=z_money.z_mon-1000; l_money.Z_mon :=l_money.z_mon+1000; dbms_output.put_line(z_money.z_mon||','||l_money.Z_mon);end;
阅读全文
0 0
- PL SQL
- pl/sql
- pl/sql
- PL/SQL
- pl/sql
- PL SQL
- PL/SQL
- PL/SQL
- pl/sql
- PL SQL
- PL/SQL
- PL/SQL
- pl/sql
- pl/sql
- PL/SQL
- PL/SQL
- PL/SQL
- pl/sql
- 二叉树相关面试题总结
- python的几种常用数据类型
- 图
- 写一个函数返回参数二进制中1的个数
- 解决 ”Event filter with query "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstan“
- PL/SQL
- HDU 5970 最大公约数(找规律)
- Android View框架的measure机制
- C语言基础知识学习(数组)
- MySQL与eclipse建立连接
- Codeforces868B Race Against Time
- 一对多双向关联 、 多对一
- ios-collectionView?.deleteItems(at: [indexPath])造成的错误
- (M)Dynamic Programming: 474. Ones and Zeroes