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

PLSQL编译提示Invalid identifier错误:按员工ID打印信息的存储过程异常

报错原因分析
  • 核心错误是你在DBMS_OUTPUT.PUT_LINE输出内容时,直接使用了employees表的字段名first_name/last_name/email/phone/job_title,这些字段名仅在SELECT查询语句的上下文中有效,离开查询语句后不能直接作为标识符调用,你需要使用之前SELECT INTO赋值的自定义局部变量fname/lname/empemail/ephone/title。
  • 额外注意:你定义的empemail类型为number(10),但实际email字段一般是字符串格式,类型不匹配后续运行也会触发报错,需要调整为对应字符串类型。
修正后完整代码
CREATE OR REPLACE PROCEDURE EmployeeInfo(empid  number)
IS
    fname varchar(20);
    lname varchar(40);
    -- 邮箱字段类型调整为varchar,长度可根据你表的实际字段长度调整
    empemail   varchar(50);
    ephone VARCHAR(10);
    title varchar(20);
BEGIN 
    SELECT first_name,last_name,email,phone,job_title
    INTO fname,lname,empemail,ephone,title
    FROM employees
    WHERE employee_id=empid;
    -- 输出改为使用已赋值的自定义变量
    DBMS_OUTPUT.PUT_LINE( 'First Name: '||fname );
    DBMS_OUTPUT.PUT_LINE( 'Last Name: '||lname );
    DBMS_OUTPUT.PUT_LINE( 'Email: '||empemail );
    DBMS_OUTPUT.PUT_LINE( 'Phone: '||ephone );
    DBMS_OUTPUT.PUT_LINE( 'job_title: '||title );
END; 
/

EXECUTE employeeinfo(107);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:24:02