PL/SQL的组成元素

块、变量名、数据类型、数据、变量声明、赋值语句、注释
1,块
PL/SQL的组成元素
分类:
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,注释:--单行注释   /**/多行注释

你可能感兴趣的:(pl/sql)