plsql块的实例

实例1  只包括执行部分的pl/sql块

set serveroutput on --打开输出选项
begin
dbms_output.put_line('hello,world!');
end;

相关说明:
dbms_output是oracle所提供的包(类似java的开发包),该包包含一些过程,put_line就是dbms_output包的一个过程。

如果没有set serveroutput on这个来打开输出选项,则oracle中没有任何东西显示出来。

实际显示:
SQL> set serveroutput on;
SQL> begin
  2  dbms_output.put_line('hello,world!');
  3  end;
  4  /
hello,world!
PL/SQL procedure successfully completed


实例2  包含定义部分和执行部分的pl/sql块

declare
  v_ename varchar2(5);--定义字符串变量
begin
  select ename into v_ename from emp where empno=&no;
  dbms_output.put_line('雇员名:'||v_ename);
end;
/

相关说明:
& 表示要接收从控制台输入的变量


注意:
1.ename into v_ename的意思就是将ename的值赋给v_ename。
2.输出语句中||其作用和java中的+作用一样。
3.empno=&no;里&后面的no其实是随意的,但是不能不写,其作用就是将在控制台输入的变量赋给哪个值,如&no的意思就是将从控制台输入的值赋给no。


SQL> declare
  2  --定义变量
  3  v_ename varchar2(10);
  4  begin
  5    --执行部分
  6    select ename into v_ename from emp where empno=&aa;
  7    --在控制台显示用户名
  8    dbms_output.put_line('用户名是:'||v_ename);
  9    end;
 10  /
用户名是:SCOTT
PL/SQL procedure successfully completed



--把用户的薪水也显示出来
declare
--定义变量
v_ename varchar2(10);
v_sal number(7,2);
begin
  --执行部分
  select ename,sal into v_ename,v_sal from emp where empno=&aa;
  --在控制台显示用户名
  dbms_output.put_line('用户名是:'||v_ename||' 工资:'||v_sal);
  end;


实例3  包含定义部分、执行部分和例外处理部分
为了避免pl/sql程序的运行错误,提高pl/sql的健壮性,应该对可能的错误进行处理,这个很有必要:

1)比如在实例2中,如果输入了不存在的雇员号,应当作例外处理

2)有时出现异常,希望用另外的逻辑处理

相关说明:oracle事先预定义了一些例外,no_data_found就是找不到数据的例外

SQL> declare
  2  --定义变量
  3  v_ename varchar2(10);
  4  v_sal number(7,2);
  5  begin
  6    --执行部分
  7    select ename,sal into v_ename,v_sal from emp where empno=&aa;
  8    --在控制台显示用户名
  9    dbms_output.put_line('用户名是:'||v_ename||' 工资:'||v_sal);
 10    --异常处理
 11    exception
 12      when no_data_found then
 13        dbms_output.put_line('该编号的用户不存在,请重新输入!');
 14    end;
 15  /
该编号的用户不存在,请重新输入!
PL/SQL procedure successfully completed


猜你喜欢

转载自1124117571.iteye.com/blog/2286723
今日推荐