oracle - 设置除以 0 返回 0
问题描述
我突然想到 PL/SQL 可能有一种更简洁的方式来执行此操作:
我有一个程序可以发生被零除,但在所有情况下我都希望它返回 0。我当前的逻辑如下所示:
if bar <> 0 then
foobar := foo/bar;
else
foobar := 0;
end if;
有谁知道更简单/更便宜的方法来做到这一点?我对 PL/SQL 还很陌生,我看到我可以使用异常处理程序,但这似乎跳过了操作。所以我想我可以例外zero_divide
,然后做:
foobar := 0;
foobar := foo/bar;
不过,我担心这并不容易理解。感谢您的任何见解!
解决方案
尝试以下操作:
declare
foo integer := 1;
bar integer := 0;
foobar integer;
begin
foobar := case bar when 0 then 0 else foo/bar end;
dbms_output.put_line(foobar);
end;
输出:
0
推荐阅读
- azure - IMAP 扩展不工作 Linux Azure Web 应用程序
- php - Magento ?SID 键被插入到包含散列的 wordpress 锚标记中
- python - Azure 错误:授权失败
- python - python ssh paramiko 保存到文件
- javascript - 角度 4. 无法打开应用程序
- c# - 扩展器标题组描述另一个控件中的额外摘要
- android - 每当点击 RecyclerView 中的透明项目时,背景广告点击不起作用
- ios - 一个水平的和一个垂直的 UICollectionView 放置在一个 UIScrollView iOS Swift 中
- angular - 我需要在 REST-API 响应中设置哪些标头才能使我的简单 Ionic 3 WebApp GET 请求正常工作?
- php - Laravel 中的数据表