【问题标题】:PL/SQL statement ignored, cannot displayPL/SQL 语句被忽略,无法显示
【发布时间】:2012-11-26 01:27:39
【问题描述】:

当我只想在工作 ID 中显示员工的最高工资时,我一直遇到这些问题

ORA-06550:第 12 行,第 6 列: PL/SQL: ORA-00933: SQL 命令未正确结束 ORA-06550:第 8 行,第 6 列: PL/SQL:忽略 SQL 语句

这是我的代码:

DECLARE
    lvc_jb_id VARCHAR2;
    lvn_max_sal NUMBER;
BEGIN
    SELECT max(salary), job_id
    INTO lvn_max_sal, lvc_jb_id
    FROM EMPLOYEES 
    group by job_id
    DBMS_OUTPUT.PUT_LINE('MAX SALARY for job_id is'|| lvn_max_sal);
    DBMS_OUTPUT.PUT_LINE('job id '|| lvc_jb_id);
END;

谁能告诉我我做错了什么?

【问题讨论】:

  • 1)group by job_id 后面的分号丢失 2) varchar2 变量的长度必须指定lvc_jb_id VARCHAR2 -> lvc_jb_id VARCHAR2(<<length>>)
  • 我的新代码产生了一个新问题,它说:ORA-01422:精确提取返回的行数超过了请求的行数。这是我的新代码:DECLARElvc_jb_id VARCHAR2(50);lvn_max_sal NUMBER;BEGINSELECT max(salary), job_idINTO lvn_max_sal, lvc_jb_idINTO lvn_max_sal, lvc_jb_idFROM EMPLOYEESgroup by job_id;DBMS_OUTPUT.PUT_LINE('MAX SALARY for job_id is'|| lvn_max_sal);DBMS_OUTPUT.PUT_LINE('job id '|| lvc_jb_id);@987654335s>5

标签: oracle


【解决方案1】:

指定字符串的大小。 例如:lvc_jb_id VARCHAR2(50);

用分号结束选择查询。现在它应该可以工作了。

【讨论】:

  • 我认为我的 SELECT 语句不需要分号,我已经在其他代码上没有分号并且它有效...
  • 我认为分号是必需的。 :-)
猜你喜欢
  • 1970-01-01
  • 2016-07-19
  • 2017-09-15
  • 1970-01-01
  • 1970-01-01
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多