PL/SQL的组成元素

块、变量名、数据类型、数据、变量声明、赋值语句、注释
1,块
[img]http://dl.iteye.com/upload/picture/pic/118864/0606ba5f-1659-382f-8802-979edc74f89a.jpg[/img]
分类:
a,无名块:动态构造并只能执行一次
b,命名块:前面加了标号的无名块 <<inserttype>>,在end后也要加上标号名
c,子程序:包括在数据库中定义的存储过程,函数等,这些块一旦被定义,即可随时调用
d,触发器:它是存储在数据库中的块,对表进行操作(增删改)时出发

例:

<<inserttype>>/*有标号的无名块即为命名块*/
DECLAR
v_TypeCode1 varchar(20):='CC';
v_TypeCode2 varchar(20):='dd';
v_TypeRemark1 varchar(20):='Computer';
v_TypeRemark2 varchar(20):='C++Lagurage';
v_OutPut varchar(20);

BEGIN
/*插入数据到type表*/
INSERT INTO type VALUES(v_TypeCode1 , v_TypeRemark1 );
iNSERT INTO type VALUES(v_TypeCode2 , v_TypeRemark2 );
/*把刚才插入的数据输出到屏幕上用DBMS_OUTPUT*/
SELECT type_remark INTO v_OutPut FROM type WHERE typeCode=v_TypeCode1
DBMS_OUTPUT.PUTLINE(v_OutPut );
SELECT type_remark INTO v_OutPut FROM type WHERE typeCode=v_TypeCode2
DBMS_OUTPUT.PUTLINE(v_OutPut );

END inserttype;

例:存储过程,
把上一个例子的DECLAR换成CREATE OR REPLACE PROCEDURE 就变成了存储过程

CREATE OR REPLACE PROCEDURE inserttype AS
v_TypeCode1 varchar(20):='CC';
v_TypeCode2 varchar(20):='dd';
v_TypeRemark1 varchar(20):='Computer;
v_TypeRemark2 varchar(20):='C++Lagurage';
v_OutPut varchar(20);

BEGIN
/*插入数据到type表*/
INSERT INTO type VALUES(v_TypeCode1 , v_TypeRemark1 );
iNSERT INTO type VALUES(v_TypeCode2 , v_TypeRemark2 );
/*把刚才插入的数据输出到屏幕上用DBMS_OUTPUT*/
SELECT type_remark INTO v_OutPut FROM type WHERE typeCode=v_TypeCode1
DBMS_OUTPUT.PUTLINE(v_OutPut );
SELECT type_remark INTO v_OutPut FROM type WHERE typeCode=v_TypeCode2
DBMS_OUTPUT.PUTLINE(v_OutPut );

END inserttype;

例:触发器
在auths表中创建触发器,确保值小于1000才能插入到salary列

CREATE OR REPLACE TRIGGER salary_trigger
BEFORE INSERT OR UPDATE of salary
ON auths FOR EACH ROW;

BEGIN
IF:new.salary>1000 THEN
RAISE_APPLICATION_ERROR(-20060,'插入的值不能大于1000!');
END IF;
END salary_trigger;

2,变量名
合法的标识符:以字母开头;字母数字特殊字符($,_,#)组成;字符内不能有空格;长度不超过30
标识符不区分大小写

3,数据类型
四种数据类型:标量类型、复合类型、引用类型、LOB类型
4,数据:字符型数据、数值型数据、布尔型数据
5,声明变量:variable_name[CONSTRANT]type[not null][:=value]
constrant:表示声明的是一个常量
type:变量类型
not null:非空,必须赋初值
6,赋值语句:可以在块的各个部分用赋值语句variable :=expression;
7,表达式:算术表达式,字符表达式,逻辑表达式
8,注释:--单行注释 /**/多行注释
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值