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 是一个未被定

相关文档:

SQL在建立与服务器的连接时出错的解决方

在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)

刚刚安装的数据库系统,按照� ......

作为备忘吧.在机房里输入的.

/*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 ......
update CHELIANG_MINGDAN set clmd_yunxuzaizhong = cast(clmd_yunxuzaizhong/1000 as decimal(14,4)) where clmd_yunxuzaizhong is not null
update CHELIANG_MINGDAN set clmd_carweight = cast(clmd_carweight/1000 as decimal(14,4)) where clmd_carweight is not null ......

SQLServer和Oracle是大家经常用到的数据库,在此感谢作者总结出这些常用函数以供大家参考。

数学函数:

1.绝对值

S:SELECT abs(-1) value

O:SELECT abs(-1) value from dual

2.取整(大)

S:SELECT ceiling(-1.001) value

O:SELECT ceil(-1.001) value from dual

3.取整(小) ......

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 ......