首页 > 解决方案 > 输出过程中表的所有名称

问题描述

我想在这个过程中显示last_name我的employees表中的所有内容。

错误:ORA-01422: Request returns more than the requested number of lines

代码:

CREATE OR REPLACE PROCEDURE writeAllEmployees AS 
  lastn employees.last_name%TYPE;
BEGIN
 SELECT last_name INTO lastn FROM employees;
 DBMS_OUTPUT.PUT_LINE(lastn);
 END;
 /
 EXEC writeAllEmployees;

标签: oracleplsqloracle-sqldeveloper

解决方案


由于表中有不止一行,您需要一个循环:

CREATE OR REPLACE PROCEDURE writeAllEmployees AS 
BEGIN
  for cur_r in (SELECT last_name FROM employees) loop
    DBMS_OUTPUT.PUT_LINE(cur_r.last_name);
  end loop;
END;
/
EXEC writeAllEmployees;

不要忘记启用服务器输出;在一些通过运行的工具中set serveroutput on


推荐阅读