首页 > 解决方案 > 使用 PL/SQL 从表中检索数据

问题描述

我想从 DEPARTMENT 表中检索有关每个部门的所有信息,并将信息显示在屏幕上。

Column name      Data type     Constraints

DEPARTMENT_ID    NUMBER(5)     PK

DEPARTMENT_NAME  VARCHAR2(25)  NOT NULL

LOCATION_ID      VARCHAR2(15)

Sample Output:

Department Details are :
1000, ADMIN, HQ-101

1010, DEVELOPMENT, CBE-103

1020, TESTING, CHN-102

我有一个代码如下 -

set serveroutput on;
declare
v_dno department.department_id%type;
v_dname department.department_name%type;
v_loc department.location_id%type;
begin
dbms_output.put_line('Department Details are :');
loop
dbms_output.put_line(v_dno || ', ' || v_dname || ', ' || v_loc);
end loop;
commit;
end;
/

但这不会产生任何输出,请帮助。提前致谢!

标签: oracleplsql

解决方案


IN SQL 如果要从表、视图等中检索数据,则需要使用SELECT语句。在您的匿名块中,您没有使用选择,而是循环空变量。因此,您需要像这样在代码中添加选择(您也可以使用声明的游标来执行此操作,但在这种情况下,我将其与 FOR 对齐):

set serveroutput on;
begin
dbms_output.put_line('Department Details are :');
for c in (select department_id, department_name, location_id from department) loop
  dbms_output.put_line(c.department_id|| ', ' || c.department_name|| ', ' || 
  c.location_id);
end loop;
commit;
end;

由于您使用的是游标,因此根本不需要声明和使用变量。


推荐阅读