编写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
相关产品推荐
相关产品推荐

