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关键字引发异常
使用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;

原创粉丝点击