[PL/SQL] metoda wykorzystujaca kursory

Odpowiedz Nowy wątek
2008-06-05 19:19
0

Posiadam nastepujaca baze danych zawierajaca informacje o firmie:

CREATE TABLE PRACOWNICY (
    NR_PRACOWNIKA CHAR(4)     NOT NULL,
    IMIE          VARCHAR2(20) NOT NULL,
    NAZWISKO      VARCHAR2(20) NOT NULL,
        DATA_ZATR     DATE        NOT NULL,
    DZIAL         VARCHAR2(20) NOT NULL,
    STANOWISKO    VARCHAR2(20) NOT NULL,
    PENSJA        NUMBER(8,2)        ,
    DODATEK       NUMBER(8,2)        ,
    NR_MIEJSCA CHAR(6)     NOT NULL,
    NR_TELEFONU   CHAR(16),
    PRIMARY KEY (NR_PRACOWNIKA));

INSERT INTO PRACOWNICY
VALUES ('0001', 'JAN', 'KOWALSKI', '1997-02-01', 'OBSLUGA KLIENTA', 'SPRZEDAWCA', 1100, 123, '000001', '987-231-123');

INSERT INTO PRACOWNICY
VALUES ('0002', 'ANNA', 'KAMINSKA', '1997-01-01', 'OBSLUGA KLIENTA', 'SPRZEDAWCA', 1200, 115, '000002', '987-231-124');

INSERT INTO PRACOWNICY
VALUES ('0003', 'KRZYSZTOF', 'ADAMSKI', '1997-05-01', 'OBSLUGA KLIENTA', 'KIEROWNIK', 2000, NULL, '000001', '987-231-125');

INSERT INTO PRACOWNICY
VALUES ('0004', 'PIOTR', 'MICHALSKI', '1998-06-01', 'TECHNICZNY', 'MECHANIK', 1700, 76, '000001', '987-231-131');

INSERT INTO PRACOWNICY
VALUES ('0005', 'BOZENA', 'DOMANSKA', '1997-02-01', 'OBSLUGA KLIENTA', 'SPRZEDAWCA', 1300, 134, '000003', '987-231-126');

INSERT INTO PRACOWNICY
VALUES ('0006', 'WOJCIECH', 'BURZALSKI', '1998-12-01', 'TECHNICZNY', 'MECHANIK', 1800, 80, '000003', '987-231-132');

INSERT INTO PRACOWNICY
VALUES ('0007', 'MARZENA', 'KOWNACKA', '1997-05-01', 'KSIEGOWOSC', 'KASJER', 1400, 105, '000001', '987-231-141');

INSERT INTO PRACOWNICY
VALUES ('0008', 'DAMIAN', 'MACHALICA', '1997-05-01', 'TECHNICZNY', 'KIEROWNIK', 2200, NULL, '000001', '987-231-133');

INSERT INTO PRACOWNICY
VALUES ('0009', 'ALICJA', 'MAKOWIECKA', '1999-07-01', 'OBSLUGA KLIENTA', 'SPRZEDAWCA', 1400, 120, '000004', '933-241-525');

INSERT INTO PRACOWNICY
VALUES ('0010', 'WOJCIECH', 'BAGIELSKI', '1998-04-01', 'OBSLUGA KLIENTA', 'SPRZEDAWCA', 1200, 100, '000001', '457-531-143');

Moje zadanie polega na tym:
kierownik powinien implementowac metode Print wypisujaca imiona i nazwiska pracownikow nalezacych do dzialu ktorym kieruje kierownik. Metoda print powinna kozystac z kursorow.

Prosze o pomoc

Pozostało 580 znaków

2008-10-16 12:11
IP
0

Dla potomnych:

DECLARE
 CURSOR c IS
  SELECT imie, nazwisko FROM pracownicy
  WHERE dzial IN (SELECT dzial FROM pracownicy WHERE stanowisko = 'KIEROWNIK')
  AND stanowisko <> 'KIEROWNIK'; -- wykluczamy kierowników ze zbioru
BEGIN
 FOR i IN c LOOP
  DBMS_OUTPUT.PUT_LINE(i.imie || ' ' || i.nazwisko);
 END LOOP;
END;

Detale można zmodyfikować według potrzeb :)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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