实例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