Oracle学习笔记(二十二)——块

来源:互联网 发布:windows串口编程实例 编辑:程序博客网 时间:2024/03/28 22:35
1、简单分类


2、编写规范
     1)注释
  • 单行注释--(两个减号)
    • select * from emp where empno=7788;——取得员工信息
  • 多行注释/*......*/
     2)标识符号的命名规范
  • 定义变量,建议用v_作为前缀:v_sal。
  • 定义常量,建议用c_作为前缀:c_rate。
  • 定义游标,建议用_cursor作为后缀:emp_cursor。
  • 定义例外,建议用e_作为前缀:e_error。

3、块
     1)块
  • pl/sql的基本程序单元,编写pl/sql程序实际上就是编写pl/sql块。
  • 要完成相对简单的应用功能,可能孩子需要编写一个pl/sql块;但是如果想实现复杂的功能,可能需要在一个pl/sql块中潜逃其它的pl/sqk块。
     2)块的结构:pl/sql块由三个部分构成:定义部分、执行部分、里外处理部分。
     declare
     /*定义部分——定义常量、变量、游标、例外、复杂数据类型*/
     begin
     /*执行部分——要执行的pl/sql语句和sql语句*/
     exception
     /*里外处理部分——处理运行的各种错误*/
     end;
  • 定义部分是从declare开始的,可选。
  • 执行部分是从bebin开始的,必选。
  • 里外处理部分是从exception开始的,可选。

     3)实例1——只包括执行部分的pl/sql块
  • SQL> set serveroutput on;--打开输出选项SQL> begin  2  dbms_output.put_line('hello,world');  3  end;  4  /hello,worldPL/SQL procedure successfully completed
  • 说明:dbms_output是oracle所提供的包(类似java的开发包),该包包含一些过程,put_line就是dbms_output的一个过程。

     4)实例2——包括定义部分和执行部分的pl/sql块
  • SQL> set serveroutput on;SQL> declare  2  --定义变量  3  v_ename varchar2(5);--定义字符串变量  4  begin  5    --执行部分  6    select ename into v_ename from emp where empno=&no;--将查询到的值赋值给v_ename  7    dbms_output.put_line('雇员名:'||v_ename);  8  end;  9  /雇员名:小红PL/SQL procedure successfully completed
  • 说明:&表示要接收从控制台输入的变量。
  • SQL> --把用户的工资也显示出来;SQL> declare  2  --定义变量  3  v_ename varchar2(5);--定义字符串变量  4  v_sal number(7,2);--定义薪水  5  begin  6    --执行部分  7    select ename,sal into v_ename,v_sal from emp where empno=&no;--将查询到的值赋值给v_ename  8    dbms_output.put_line('雇员名:'||v_ename||',薪水: '||v_sal);  9  end; 10  /雇员名:小红,薪水: 78.9PL/SQL procedure successfully completed

    5)实例3——包括定义部分、执行部分和例外处理部分的pl/sql块
  • 为了避免pl/sql程序的运行错误,提高pl/sql的健壮性,应该对可能的错误进行处理。
    • 在实例2中,如果输入了不存在的雇员号,应当做例外处理。
    • SQL> declare  2  --定义变量  3  v_ename varchar2(5);--定义字符串变量  4  v_sal number(7,2);--定义薪水  5  begin  6    --执行部分  7    select ename,sal into v_ename,v_sal from emp where empno=&no;--将查询到的值赋值给v_ename  8    dbms_output.put_line('雇员名:'||v_ename||',薪水: '||v_sal);  9  --异常处理 10  exception 11    when no_data_found then 12      dbms_output.put_line('您的编号输入有误,请重新输入!'); 13  end; 14  /您的编号输入有误,请重新输入!PL/SQL procedure successfully completed
    • 有时出现异常,希望用另外的逻辑处理。
  • 说明:oracle实现预定义了一些例外,no_data_found就是找不到数据的例外。
0 0
原创粉丝点击