You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写PL/SQL存储过程:输入数字则输出该数字,否则显示错误信息

PL/SQL存储过程:处理数字输入并包含异常处理

没问题,我来帮你实现这个需求——写一个带异常处理逻辑的PL/SQL存储过程,能判断输入内容是否为数字并做出对应反馈。下面是完整的代码:

CREATE OR REPLACE PROCEDURE check_and_print_number(p_input IN VARCHAR2) IS
    v_number NUMBER;
BEGIN
    -- 尝试将输入转换为数字
    v_number := TO_NUMBER(p_input);
    
    -- 转换成功,打印数字
    DBMS_OUTPUT.PUT_LINE('输入的数字是: ' || v_number);
EXCEPTION
    WHEN VALUE_ERROR THEN
        -- 捕获转换失败的异常(非数字输入)
        DBMS_OUTPUT.PUT_LINE('错误提示: 输入内容不是有效的数字,请重新输入!');
    WHEN OTHERS THEN
        -- 捕获其他未知异常
        DBMS_OUTPUT.PUT_LINE('发生未知错误: ' || SQLERRM);
END;
/

代码说明:

  • 参数设计:用VARCHAR2类型接收输入,这样能兼容数字和非数字的输入场景,方便后续做转换判断。
  • 核心逻辑:通过TO_NUMBER()函数尝试转换输入内容,如果输入是合法数字,转换成功后就打印该数字;如果输入非数字,会触发VALUE_ERROR异常。
  • 异常处理:
    • 专门捕获VALUE_ERROR,给出明确的非数字错误提示;
    • 加上WHEN OTHERS兜底,捕获其他意料之外的异常并输出错误信息,让程序更健壮。

使用示例:

在PL/SQL环境(比如SQL*Plus或PL/SQL Developer)中,先开启服务器输出才能看到打印结果:

SET SERVEROUTPUT ON;

然后调用存储过程:

-- 输入数字的情况
EXEC check_and_print_number('12345');
-- 输出:输入的数字是: 12345

-- 输入非数字的情况
EXEC check_and_print_number('HelloWorld');
-- 输出:错误提示: 输入内容不是有效的数字,请重新输入!

内容的提问来源于stack exchange,提问作者Sidhupuspa Satapathy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:17:03