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

Oracle SQL创建存储过程gradeCheck后无法传参调用求助

Oracle存储过程问题修正方案

错误点梳理

  • 存储过程语法缺失:参数声明段末尾缺少必须的AS/IS关键字,直接导致编译失败
  • 语句结束符缺失:CASE分支内的DBMS_OUTPUT.PUT_LINE执行语句末尾未加;,不符合PL/SQL语法规范
  • 传参格式错误:字符常量传参需要用单引号包裹,直接写A会被Oracle识别为未声明的变量,触发运行时报错
  • 输出开关未开启:默认配置下DBMS_OUTPUT的内容不会打印到控制台,需提前开启输出配置

修正后可运行代码

存储过程创建代码

create or replace procedure gradeCheck(grade char(1))
AS
Begin 
  Case
    When grade = 'A' then DBMS_OUTPUT.PUT_LINE('Great Work');
    else DBMS_OUTPUT.PUT_LINE('Not great work');
  end case;
end gradeCheck;
/

调用代码

-- 开启控制台输出开关
SET SERVEROUTPUT ON;

Begin 
  gradeCheck('A');
end;
/

运行效果

传入参数为'A'时输出Great Work,传入其他单字符时输出Not great work,完全符合需求。

内容的提问来源于stack exchange,提问作者Richard Strott

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:57:01