Pobieranie danych z tabeli za pomocą PL / SQL
Oct 20 2020
Chcę pobrać wszystkie informacje o każdym dziale z tabeli DEPARTMENT i wyświetlić je na ekranie.
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
Mam kod, który wygląda następująco:
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;
/
Ale to nie daje żadnych wyników, proszę o pomoc. Z góry dziękuję!
Odpowiedzi
Littlefoot Oct 20 2020 at 19:04
Tak, prostym sposobem na to jest użycie pętli. Ale nic nie zapętlasz (nigdy nie pobieraj niczego do tych zmiennych) i nigdy nie wychodź z pętli. Poza tym, co dokładnie robisz?
Oto, jak mogłeś to zrobić (na podstawie DEPTtabeli Scotta, która jest podobna do twojej):
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>