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>