Oracle 使用PL/SQL从表中检索数据

Oracle 使用PL/SQL从表中检索数据,oracle,plsql,Oracle,Plsql,我想从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

我想从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;
/

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

在SQL中,如果要从表、视图等检索数据,则需要使用SELECT语句。在匿名块中,您没有使用select,而是循环使用空变量。因此,您需要像这样在代码中添加select(您也可以使用声明的游标来执行此操作,但在本例中,我在FOR上的行中创建了它):


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

一旦保存了变量,您需要选择以从数据库中获取数据。我建议您对和pl/sql语句进行一些研究,然后花一些时间研究它们。显然,这是今天的家庭作业。答复如下:
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;