重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

oracle如何使用异常 oracle常见问题

关于ORACLE异常处理的问题

很显然在p2中 异常exp1没有定义,而p1中 exp1进行过初始化, 所以p1认识exp1,erp2不认识(将其当做其它)

目前成都创新互联公司已为近千家的企业提供了网站建设、域名、雅安服务器托管、网站托管、服务器托管、企业网站设计、湖南网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

你可以给exp1定义一个异常号码,这样在p2中截获异常时通过对异常号码进行判断。

或者把他们放到一个oracle包中,将exp1 定义为 包变量,这样p1中初始化过exp1,p2中也可以使用了。

Oracle怎么捕获ora-00942的异常

不知道你想在什么环境下捕获,不知道你说的SQL是怎么捕获,或者你说的是脚本?

如果是在存储过程中捕获

有两个思路吧,

1、直接使用普通的异常处理,获取异常的代码,匹配是否为00942,然后就捕获到这个异常。

2、自定义异常处理,使用数据字典,首先查询数据字典中是否存在这表,如果不存在,就产生一个自定义的异常,在这个异常里你做处理。

------------------------------------------------------------------------------------

declare

myexception exception;

--表个数

v_num integer :=0;

begin

--查询表名为MY_USER表个数

SELECT count(*) into v_num FROM tabs WHERE table_name = 'MY_USER'

if v_num=0 then

raise myexception;

end if;

exception

when myexception then

raise_application_error(20001,'my exception happens');

when others then

raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);

end

----------------------------------------------------------------------------------------

伪代码,你可以嵌到你的存储过程中去使用。

2021-05-25 Oracle 使用group by出现异常:

之前使用mysql的GROUP BY关键字时,可以在不使用聚合函数的情况下select多个非分组字段,比如:

select colnum1,colnum2 from table_name group by colnum1

这样得到的colnum2值,应该是每组中的第一个colnum2值。

但是在Oracle中这样使用会出现如下异常:

异常原因是:

在使用group by 时,select的字段存在两种情况:第一种,字段出现在group字句中,可以直接select;第二种,字段没在group子句中,select时要用聚合函数(比如max()、min()、avg())处理。

解决的方法也很简单,为非分组字段使用聚合函数。

如果在已经分组的情况下,select一个非分组字段,通常我们想得到的这个非分组字段都会有其特点。比如说最大值、最小值,这就分别对应聚合函数max()、min()。比如:

select colnum1,max(colnum2) from table_name group by colnum1

oracle存储过程中异常怎么用?

第三行的declare删掉

那段select 有问题,最后的的条件,id=3改为sid=3;

正确的如下:

create or replace procedure ss as

s_id integer;

s_name varchar2(20);

s_age integer;

begin

begin

select sid, sname, sage

into s_id, s_name, s_age

from student

where sid = 3;

exception

when NO_DATA_FOUND then

insert into student values (3, 'zj', 22);

commit;

end;

end;


分享题目:oracle如何使用异常 oracle常见问题
文章来源:http://cqcxhl.com/article/hepjpd.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP