Więc chce sobie zrobić zapytanie, które by zwracało mi wartości:
P.PRZEDMIOT_NAZWA,P.PRZEDMIOT_TEMATYKA
RP.TRP_PROWADZACY
R.RODZAJ_TYP
BN.NOTATKA_NAZWA,BN.NOTATKA_OPIS
TWORCA
BN.NOTATKA_DATA_TWORZENIA
OSOBA MODYFIKUJACA
BN.NOTATKA_DATA_MODYFIKACJI
W tym celu korzystam z tabel:
T_PRZEDMIOT P,T_RODZAJ R,T_RODZAJE_PRZEDMIOTU RP,T_OSOBY O,T_BAZA_NOTATEK BN
a oto one:
CREATE TABLE T_PRZEDMIOT(
PRZEDMIOT_ID NUMBER(2,0) NOT NULL PRIMARY KEY,
PRZEDMIOT_NAZWA CHAR(150) NOT NULL,
PRZEDMIOT_TEMATYKA CHAR(250)
);
CREATE TABLE T_RODZAJ(
RODZAJ_ID NUMBER(2,0) NOT NULL PRIMARY KEY,
RODZAJ_TYP CHAR(50) NOT NULL
);
CREATE TABLE T_RODZAJE_PRZEDMIOTU(
TRP_ID NUMBER(3,0) NOT NULL PRIMARY KEY,
TRP_PROWADZACY CHAR(70) NOT NULL,
RODZAJ_ID NUMBER(2,0) NOT NULL REFERENCES T_RODZAJ(RODZAJ_ID),
PRZEDMIOT_ID NUMBER(2,0) NOT NULL REFERENCES T_PRZEDMIOT(PRZEDMIOT_ID)
);
CREATE TABLE T_OSOBY(
OSOBA_ID NUMBER(3,0) NOT NULL PRIMARY KEY,
OSOBA_NAZWISKO CHAR(40) NOT NULL,
OSOBA_IMIE CHAR(30) NOT NULL,
OSOBA_DATA_URODZ DATE NOT NULL,
OSOBA_ADRES_MIASTO CHAR(40) NOT NULL,
OSOBA_ADRES_ULLICA CHAR(40) NOT NULL,
OSOBA_ADRES_NUM_MD CHAR(10) NOT NULL,
OSOBA_NR_TEL_DOM NUMBER(13,0),
OSOBA_NR_TEL_KOM NUMBER(13,0),
OSOBA_ZDJECIE BLOB
);
CREATE TABLE T_BAZA_NOTATEK(
TBN_ID NUMBER(5,0) NOT NULL PRIMARY KEY,
NOTATKA_NAZWA CHAR(100) NOT NULL,
NOTATKA_OPIS CHAR(250),
NOTATKA_ZAWARTOSC_TEXT CLOB NOT NULL,
NOTATKA_DATA_UTW DATE NOT NULL,
NOTATKA_ROZMIAR_SLOWO NUMBER(10,0),
NOTATKA_ROZMIAR_STRON NUMBER(5,0),
NOTATKA_ROZMIAR_BIT NUMBER (5,0),
TRP_ID NUMBER(2,0) REFERENCES T_RODZAJE_PRZEDMIOTU(TRP_ID),
OSOBA_TWORZACA_ID NUMBER(3,0) REFERENCES T_OSOBY(OSOBA_ID),
NOTATKA_DATA_TWORZENIA DATE NOT NULL,
OSOBA_MODYFIKUJACA_ID NUMBER(3,0) REFERENCES T_OSOBY(OSOBA_ID),
NOTATKA_DATA_MODYFIKACJI DATE
);
a oto moje wypociny:
CREATE OR REPLACE VIEW PRZEDMIOTY_Z_NOTATKAMI
AS SELECT P.PRZEDMIOT_NAZWA,P.PRZEDMIOT_TEMATYKA,
RP.TRP_PROWADZACY,
R.RODZAJ_TYP,
BN.NOTATKA_NAZWA,BN.NOTATKA_OPIS,
(SELECT CONCAT(O.OSOBA_IMIE,O.OSOBA_NAZWISKO) "TWORCA" FROM T_OSOBY O, T_BAZA_NOTATEK BN WHERE O.OSOBA_ID=BN.OSOBA_TWORZACA_ID),
BN.NOTATKA_DATA_TWORZENIA,
(SELECT CONCAT(O.OSOBA_IMIE,O.OSOBA_NAZWISKO) "OSOBA MODYFIKUJACA" FROM T_OSOBY O, T_BAZA_NOTATEK BN WHERE O.OSOBA_ID=BN.OSOBA_MODYFIKUJACA_ID),
BN.NOTATKA_DATA_MODYFIKACJI
FROM T_PRZEDMIOT P,T_RODZAJ R,T_RODZAJE_PRZEDMIOTU RP,T_OSOBY O,T_BAZA_NOTATEK BN
WHERE P.PRZEDMIOT_ID=RP.PRZEDMIOT_ID AND RP.RODZAJ_ID=R.RODZAJ_ID AND BN.TRP_ID=RP.TRP_ID
ORDER BY P.PRZEDMIOT_NAZWA,RP.TRP_PROWADZACY,BN.NOTATKA_DATA_TWORZENIA;
jak wywołałem kodzik to wywaliło mi błąd: ORA-00998 w lini 6 (przy select)
mógł bym prosić o pomoc w rozwiązaniu problemu
ps.
Kożystam z oracle 10g express