PLS-00103错误求助:执行PL/SQL存储过程时遇EXECUTE符号问题
PL/SQL错误排查与解决
错误原因分析
- 语句结构错误:
CREATE OR REPLACE PROCEDURE是PL/SQL存储过程定义语句,EXECUTE是SQL*Plus专属的执行命令,两者不能放在同一段代码中执行。PL/SQL编译器会将EXECUTE识别为存储过程定义的一部分,触发PLS-00103语法错误。 - 参数类型不匹配:存储过程中
KAKSHA参数定义为VARCHAR2,但执行时传入数值10,虽Oracle支持隐式转换,但显式传入字符串更规范。 - 输出格式问题:原代码字符串拼接未添加空格,会导致输出无间隔,不符合预期格式。
修正后的代码与执行步骤
1. 创建存储过程
SET SERVEROUTPUT ON; CREATE OR REPLACE PROCEDURE WELCOME(SURNAME IN VARCHAR2,KAKSHA IN VARCHAR2) IS BEGIN dbms_output.put_line('SURNAME IS ' || SURNAME || ' KAKSHA IS ' || KAKSHA); END; /
注意:用
/结束PL/SQL块定义,这是Oracle中完成存储过程/函数定义的标准方式。
2. 执行存储过程
EXECUTE WELCOME('GHAGARE', '10'); -- 或使用简写: EXEC WELCOME('GHAGARE', '10');
预期输出
SURNAME IS GHAGARE KAKSHA IS 10
内容的提问来源于stack exchange,提问作者Pankaj Ghagare
相关产品推荐
相关产品推荐

