Oracle:pl/sql 异常处理[转]
pl/sql 提供了强大而灵活的手段来捕捉和处理程序产生的异常,从而使 oracle 的用户远离一些令人烦恼的 bug 。
pl/sql 异常处理的概念和术语
在 oracle 中所有的错误都被认为是不应该发生的异常。一个异常可能是以下 3 种情况的一种:
u 由系统产生的错误(“ out of memory ”或“ duplicate value in index ”)
u 用户行为导致的错误
u 应用程序给用户的一个警告
pl/sql 用一种异常句柄的结构来捕捉和响应错误。正是有了异常句柄的存在,我们能很方便的分离异常处理代码与可执行代码。与线性的代码相比,为了处理异常,异常句柄提供了一种类似事件驱动的模式;换句话说,就是不管一种特定的错误在何时何地发生,它都将被同一个代码处理。
当一个错误出现后,无论它是系统还是程序产生的,都将导致一个异常。之后,可执行程序被中断,控制权转移给异常处理代码。处理完异常后,程序将不会回到先前被中断的位置,相反的,控制权被交给了当前程序的外围模块(可能是程序,也可能是系统)。
procedure jimmy
is
new_value varchar(35)
begin
|--------new_value:=old_value || ‘-new’;
| if new_value like ‘like%’
| then
| …..
| end if;
| exception
|----- à when value_error
then
…..
end;
因为 old_value 是一个未被定
相关文档:
作为备忘吧.在机房里输入的.
/*CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20) UNIQUE,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);*/
/*CREATE TABLE Course
(Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40),
Cpno CHAR(4),
Credit SMALLINT,
&n ......
用SQL删除重复记录的N种方法
2009-06-03 17:35
例如:
id name value
1 a &nbs ......
ORDER BY 排序
ASC 升序(默认)
DESC 降序
select * from s_emp order by dept_id , salary desc
部门号升序,工资降序
关键字distinct也会触发排序操作。
select * from employee order by 1; //按第一字段排序
NULL被认为无穷大。order by 可以跟别名。
select table_name ......
我们使用oracle的人都知道可以通过rownum伪列得到查询结果序列前面的指定的行,为了下面更好的进行说明问题,我们先来创建一个数据表table1:
create table table1
(AAA integer primary key,
BBB varchar(30));
然后在table1中插入9条数据:
insert into table1 values (8, 'good');
insert into table1 values (7 ......