oracle - 输出过程中表的所有名称
问题描述
我想在这个过程中显示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;
解决方案
由于表中有不止一行,您需要一个循环:
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
。
推荐阅读
- c# - asp.net:在gridview 或listview 或其他数据控件中显示数据?
- node.js - 使用 nodejs axios/fetch 时,Flask 会话不持久化数据
- optimization - 如何在 Eclipse 中恢复文件的默认构建设置
- csv - 有没有办法删除 CSV 文件中字符串的最后两个字符?
- node.js - 使用 npx -p @angular/cli@11.2.8 ng new 创建版本为 11.2.9 的 Angular 项目?
- python - 如何在 Python 中对堆积图的值进行排序?
- python - if语句Python改变的函数结构
- python - Python 用户输入格式
- google-cloud-firestore - Firebase 云功能在跳转到下一个之前不等待 forEach 完成
- django - 将多个 BooleanField 格式化为单个 Select 小部件