使用PL-SQL
pl-sql就是oracle自己创建的语言和sql间接性关系也算是执行的程序的过程
- 支持sql,在pl/sql中使用
- 数据操纵命令
- 事务逻辑控制
- 游标控制
- sql函数和sql运算符
- 支持面向对象编程
- plsql是编译过后的sql程序语言有更好的安全性
plsql的优点
- 支持所有sql数据类型
- 支持控制
- 支持%type就是从数据库中读取类型
- 可以判断是否复合不符合则回滚
简介
declare --声明 变量
--变量储存
hello int;
ex exception; --定义异常
begin --程序执行体
hello:= 123; --赋予变量值 :=
dbms_output.put('值是'||hello); --打印不换行
dbms_output.put_line('值是'||hello); --打印换行
dbms_output.new_line(); --输出新行
end;
/
--要在命令行显示内容首先得开启
set serveroutput on; --开启显示打印内容
set setveroutput off; --关闭显示内容;
LOB数据类型
就是储存大型多媒体文件和文本文件压缩文件的一个类型
LOB数据类型最大可储存最大4G的数据类型
LOB数据类型 | 说明 |
---|---|
BLOB | 将大型二进制对象储存在数据库中 |
CLOB | 将大型字符数据存储在数据库中 |
NCLOB | 储存大型nuicode字符数据 |
BFILE | 将大型二进制对象储存在操作系统文件中 |
引用属性类型
就是在数据库中知道这个表但不知道这个列中的属性类型但可以用引用类型来使用
declare
hello emp.id%type -- 引用emp.id列类型
begin
end;
/
逻辑比较
和java里面的一样
关系运算符 | 说明 |
---|---|
F | 日期比较 |
<>,!= | 比较两个不相等 |
< | |
> | |
<= | |
>= |
控制结构
--条件控制语句
IF 条件 then
else
end if;
--循环控制语句 index计数变量 从一开始到20
for index in 1..20
loop
end loop;
--顺序控制
GOTO 语句
NULL 语句
动态SQL
pl/sql里面除了增删改查等基本的操作可以使用比如建库见表则不能直接使用
begin
create table tab1(tid number(32)); --这一句是错误的
execute immediat 'create table tab1(tid number(32))' --这句才正确
end;
错误处理
比如交易其中一个卡上余额不足怎么办只能自定义一个异常不能处理
示例
declare
ex exception;
thisMoney int:=;
NewMoney int:=100;
begin
if thisMoney > NewMoney then
dbms_output.put_line('交易成功');
else
raise ex;
end if;
Exception
when ex then
dbms_output.put_line('交易失败余额不足');
end;
/