Lấy dữ liệu từ bảng bằng PL / SQL

Oct 20 2020

Tôi muốn truy xuất tất cả thông tin về từng phòng ban từ bảng DEPARTMENT và hiển thị thông tin trên màn hình.

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

Tôi có một mã như sau-

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;
/

Nhưng điều này không tạo ra bất kỳ đầu ra nào, vui lòng giúp đỡ. Cảm ơn trước!

Trả lời

Littlefoot Oct 20 2020 at 19:04

Có, một cách đơn giản để làm điều đó là sử dụng một vòng lặp. Tuy nhiên, bạn đang lặp lại không có gì (không bao giờ tìm nạp bất kỳ thứ gì vào các biến đó) và không bao giờ thoát khỏi vòng lặp. Ngoài ra, chính xác thì bạn đang cam kết điều gì?

Đây là cách bạn có thể đã làm điều đó (dựa trên DEPTbảng của Scott tương tự như bảng của bạn):

SQL> set serveroutput on
SQL> begin
  2    for cur_r in (select deptno, dname, loc from dept) loop
  3      dbms_output.put_line(cur_r.deptno ||' '|| cur_r.dname ||' '|| cur_r.loc);
  4    end loop;
  5  end;
  6  /
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

PL/SQL procedure successfully completed.

SQL>