首页 > 代码库 > oracle数据库的随堂笔记(二)-块

oracle数据库的随堂笔记(二)-块

1.单行注释--多行注释/*...*/


2.标志符号的命名规范
  1)当定义变量时,建议用v_作为前缀 v_sal
  2)当定义常量时,建议用c_作为前缀 c_rate
  3)当定义游标时,建议用_cursor作为后缀 emp_cursor
  4)当定义例外时,建议用e_作为前缀 e_error


3.块结构示意图
  pl/sql块由三个部分构成:定义部分、执行部分、例外处理部分
  如下所示:
    declear--可选
    /*定义部分----定义常量、变量、游标、例外、复杂数据类型*/
    begin--必须
    /*执行部分----要执行的pl/sql语句和sql语句*/
    exception--可选
    /*例外处理部分----处理运行的各种错误*/
    end;


4.定义并执行一个过程
    create procedure xf_pro1 is
    begin
    insert into mytest(name,passwd) values(‘xiaofei‘,‘1234‘);
    end;
    --查看错误信息
    show error;


5.如何调用该过程
    exec 过程名;
    exec 过程名(参数1,参数2,...);
    call 过程名(参数1,参数2,...);
    例: execute xf_pro1;
          exec xf_pro1;

6.java程序结果
  public static void main(String[] args){
  int a=1;//定义
    try{
      a++;//执行
    }catch(Exception e){}//异常处理
  }

7.实例:
  实例1.只包括执行部分的pl/sql块
    set serveroutput on--打开输出选项
    set serveroutput off--关闭输出选项  
    最简单的块:
    begin
    dbms_output.put_line(‘hello,world‘);
    end;
    /*
    相关说明:
    dbms_output是oracle所提供的包(类似java的开发包),该包包含一些过程,put_line就是dbms_output包的一个过程
    */
  实例2.包含了定义部分和执行部分的pl/sql块
    declare
    v_ename varchar2(5);
    begin
    select ename into v_ename from emp where empno=&no;
    dbms_output.put_line(‘雇员名:‘||v_name);
    end;
    /
    /*
    相关说明:
    --地址符是从控制台输入
    --into v_name表示将查出信息放入到变量v_name中(即赋值)
    --||表示连接符
    */

    declare
    --定义变量
    v_name varchar2(5);
    begin
    --执行部分
    select ename into v_ename from emp where empno=&aa;
    --在控制台显示用户名
    dbms_output.put_line(‘用户名:‘||v_ename);
    end;
    /

    把用户名和薪水显示出来
    v_ename varchar2(5);
    v_sal number(7,2);
    begin
    select ename,sal into v_ename,v_sal from emp where empno=&empno;
    --注意变量名要一一对应
    dbms_output.put_line(‘雇员名:‘||v_ename||‘工资:‘||v_sal);
    end;
    /

  实例3.包含定义部分、执行部分和例外处理部分
    为了避免pl/sql程序的运行错误,提高pl/sql健壮性,应该对可能的错误进行处理
      1)比如在实例2中,如果输入了不存在的雇员号,应当做例外处理
      2)有时出现异常,希望用例外的逻辑处理
    相关说明:oracle事先预定义了一些例外,no_data_found就是找不到数据的例外

    declare
    v_ename varchar2(5);
    v_sal number(7,2);
    begin
    select ename,sal into v_ename,v_sal from emp wherer empno=&aa;
    dbms_output.put_line(‘用户名是:‘||v_ename||‘工资:‘||v_sal);
    --异常处理
    exception
    when no_data_found then
    dbms_output.put_line(‘朋友,您输入的编号有误‘);
    end;
    /

oracle数据库的随堂笔记(二)-块