Oracle之PL/SQL学习笔记之PL/SQL块(二)

倖福魔咒の 提交于 2019-12-04 05:06:27

Oracle之PL/SQL学习笔记之PL/SQL块(二)

1. PL/SQL块

PL/SQL 程序由三部分组成,即声明部分,执行部分,例外部分(异常部分)

PL/SQL 块的结构如下:


declare 

    /*声明部分:在此声明PL/SQL用到的变量,类型以及游标,局部的存储过程和函数*/

begin 

    /*执行部分:过程以及语句,即程序的主要部分*/
    
exception

    /*执行异常部分:错误处理*/
    
end;

  其中,执行部分是必须的,其余部分是可选的。

  最简单的块为:

begin

    null;--执行部分最少要添加null;表示空语句,什么都不执行,但是没有null就报错
 
 end;


        PL/SQL块可以分为三类:

        a. 无名块:动态结构,只能执行一次

        b. 子程序: 存储在数据库中的存储过程,函数以及包等。当在数据库上建好后可以在其他程序中调用它们

        c. 触发器: 当数据库发生操作时,会触发一些事件,从而自动执行相应的程序。


2.  标识符

    PL/SQL 程序设计中的标识符定义与SQL的标识符定义的要求相同。要求和限制有:

  • 标识符名不能超过30个字符

  • 第一个字符必须为字母

  • 不分大小写

  • 不能用'-'(减号)

  • 不能是SQL保留字

    提示: 一般不要把变量名声明与表中字段名完全一样,如果这样可能得到不正确的结果。

       

declare 

    ename emp.ename%type:='KING';
  
begin

    delete from emp where ename=ename;
    
end;


以上案例,不是删除ename='KING'的员工信息,而是删除了整表的信息相当于 delete from emp


3. PL/SQL命名规范

        变量命名在PL/SQL中有特别的讲究,建议在系统的设计阶段就要求所有变成人员共同遵守一定的要求,使得整个系统的文档在规范上达到要求。


标识符

命名规则

例子

程序变量

V_name

V_name

程序常量

C_Name

C_company_name

游标变量

Name_cursor

Emp_cursor

异常标识

E_name

E_too_many

表类型

Name_table_type

Emp_record_type

Name_table

Emp

记录类型

Name_record

Emp_record

SQL*Plus 替代变量

P_name

P_sal

绑定变量

G_name

G_year_sal


4. 表达式

  数据库中经常使用表达式来计算结果,尤其在变量和常量的使用过程中。

  • 数值表达式

  • 关系表达

  • 逻辑表达式

4.1 数值表达式(结果还是数值)

    数值表达式就是由数值类型的常量,变量以及函数,由算术运算符连接而成。在PL/SQL中可以使用的算术运算符有:

  1.   加号+

  2. 减号 -

  3. 乘号 * 

  4. 除号 /

  5. 乘方 **

begin 
  dbms_output.put_line(3**3); -- 3*3*3=27
end;

4.2 关系表达式和逻辑表达式(结果是boolean)

由关系运算符连接起来的字符或数值称为关系表达式。其中关系运算符主要有以下几种:

  • 等于号 =

  • 小于号 <

  • 大于号 >

  • 小于等于<=

  • 大于等于>=

  • 不等于!=和<>

关系表达式很多用在PL/SQL的条件语句中,它们最后的结果是一个布尔类型的值

逻辑表达式

  • 逻辑非 NOT 

  • 逻辑或OR

  • 逻辑与AND

begin 
  if 1<>2 AND 1<2 then 
    dbms_output.put_line('1!=2');
  end if;
  dbms_output.put_line(3**3);
end;



未完待续.....



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!