DBMS w SQL Developer

0

Witam piszę przykładowo procedurę, która wyświetli raport o wszystkich pracownikach którzy pracowali w danym roku, jako parametry wywołania podajemy rok. I mam problem bo napisałem takie coś:

CREATE OR REPLACE PROCEDURE raport_rok (rok NUMBER)
IS
CURSOR kursor IS SELECT *FROM etaty;
zmienna NUMBER;

begin
  for i in kursor loop
    zmienna := to_char(i.data_zat, 'YYYY');
    IF (zmienna = rok) then
      dbms_output.put_line(i.id_e || ' ID OS:' || i.id_os || ' ID ST:' || i.id_st || ' DATA ZAT:' || i.data_zat || ' DATA ZW:' || i.data_zw);
    end if;
  END LOOP;
END;
/

execute raport_rok(2012);

Mam tabele etaty, w której jest id_etatu, id_osoby, id_st, data_zatrudnienia, data_zwolnienia. Oczywiście wcześniej zaimportowałem etat z osobą zatrudnioną w 2012 roku. Procedura kompiluje się poprawnie. Lecz w momencie wywołania execute raport_rok(2012); pisze tylko anonymous block completed i nie pojawia się nic więcej. Czemu DBMS nic nie wyświetla? Używam SQL Developera.

0

Kliknij u góry opcję View, z menu wybierz "dbms output".
Wyświetli się okienko (panel?) o nazwie "Dbms output".
Następnie w tym okienku kliknij duży zielony znak plusa + i dodaj sesję.

Tak na marginesie - procedury pl/sql są wykonywane po stronie serwera - nie klienta.
Po stronie serwera nie ma ekranu, nie ma wyświetlacza.
jak chcesz raport - to trzeba oprogramować go po stronie klienta - kimkolwiek on jest (program w java, w C, w VB,
aplikacja WEB itp. itd.).
Dbms_output się do tego nie nadaje, to tylko taka komenda użyteczna przy debugowaniu procedur.

1 użytkowników online, w tym zalogowanych: 0, gości: 1