【问题标题】:Invalid identifier in PLSQLPLSQL 中的标识符无效
【发布时间】:2021-12-20 15:21:13
【问题描述】:

我想根据employee-id打印员工信息。但是当我编译代码时,我得到了这个错误

这是我的代码
CREATE OR REPLACE PROCEDURE EmployeeInfo(empid  number)
IS
    fname varchar(20);
    lname varchar(40);
    empemail   number(10);
    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: '||first_name );
    DBMS_OUTPUT.PUT_LINE( 'Last Name: '||last_name );
    DBMS_OUTPUT.PUT_LINE( 'Email: '||email );
    DBMS_OUTPUT.PUT_LINE( 'Phone: '||phone );
    DBMS_OUTPUT.PUT_LINE( 'job_title: '||job_title );
END; 
/

EXECUTE employeeinfo(107);

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:

    您应该显示局部变量的值,而不是表格列。

    CREATE OR REPLACE PROCEDURE EmployeeInfo(empid  number)
    IS
    fname varchar(20);
    lname varchar(40);
    empemail   number(10);
    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; 
    /
    

    【讨论】:

    • 谢谢我更改了变量名称,但忘记在打印语句中更改它们。
    猜你喜欢
    • 2015-10-26
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    相关资源
    最近更新 更多