create or replace function div(a number, b number) return number
as
begin
if b=0 then
begin
Raise_Application_error(-20001, '除数不能为0');
return 0;
exit;
end;
return (a/b);
end;
as
begin
if b=0 then
begin
Raise_Application_error(-20001, '除数不能为0');
return 0;
exit;
end;
return (a/b);
end;
解决方案 »
- oracle 插入数据怎么报错啊???
- apex3.2 创建后执行apex_epg_config失败, apex无法登录管理界面
- oracle10g 执行查询常量的sql时,后面出现很多空格
- 初学者求助:遇到导入时的报错该如何解决?
- JOB 的问题,肯请大家来帮帮我
- 请大家帮忙,我创建用户时少了那些权限?
- 与递归查询的问题 ---高手请进(在线等待)
- 在ORACEL中如何使用文件?
- Oracle中怎么实现模糊查询呢?高分相赠!!!
- 数据库字符的显示。在线等待!
- 我如何将我的ORACLE的数据库的所有创建表和视图的语法导出成一个文本文件?
- 哪位大侠知道在oracle下调试存储过程用什么工具??赐教
is
ret number;
begin
begin
ret : a/b;
EXCEPTION
WHEN OTHERS THEN
Raise_Application_error(-20001, '除数不能为0');
return -1;
end;
return ret;
end;
/
return number
is
ret number;
begin
ret := a/b;
return ret;
EXCEPTION
WHEN OTHERS THEN
return -1;
end;
/
ret := cast(a/b as decimal(10,3));
创建:
(a number, b number) return number
is
ret number;
begin
begin
ret:=a/b;
EXCEPTION
WHEN OTHERS THEN
Raise_Application_error(-20001, '除数不能为0');
return -1;
end;
return ret;
end;运行:
declare
div2 number;
begin
div2:=DIV(8,0);
dbms_output.put_line(div2);
end;出错:
declare
*
ERROR 位于第 1 行:
ORA-20001: 除数不能为0
ORA-06512: 在"TEST.DIV", line 9
ORA-06512: 在line 4---------------------------------------------------
to:beckhambobo(beckham)运行成功
但是能不能在除数为零时返回空值并打印“除数不能为0”
---------------------------------------------------
to:yfjyz(dd) 便已有错误:
行号= 11 列号= 4 错误文本= PLS-00103: 出现符号 ";"在需要下列之一时: if
---------------------------------------------------
还要问一句Raise_Application_error(-20001, 从哪来的?
return number
is
ret number;
begin
if b = 0 then
return 0;
end if;
ret := a/b;
return ret;
EXCEPTION
WHEN OTHERS THEN
return -1;
end;
/