Sprawdzenie Creatów

F7
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 26
0

Witam
Nie wiem dlaczego przy ładowaniu creatów zawsze wyskakuje mi ten sam błąd :

Kopiuj
Error report -
SQL Error: ORA-00907: missing right parenthesis
00907. 00000 -  "missing right parenthesis"
*Cause:    
*Action: 

Proszę o sprawdzenie i poprawienie ewentualnych błędów przy tych creatach :

Kopiuj
 CREATE TABLE ROK 
	(
	ID_ROK int PRIMARY KEY  NOT NULL,
	ROK INT NOT NULL 
	)
	
CREATE TABLE MIESIAC
	(
	ID_MIESIAC INT PRIMARY KEY NOT NULL,
	ID_ROK INT,
	NAZWA varchar(255),
  FOREIGN KEY(ID_ROK)
	)
	
CREATE TABLE DATA
	(
	ID_DATA INT PRIMARY KEY  NOT NULL,
	ID_MIESIAC INT FOREIGN KEY,
	DATA_TRANSAKCJI datetime default getdate()
	)
	
CREATE TABLE TYP_TRANSAKCJI 
	(
	ID_TYP INT PRIMARY KEY  NOT NULL,
	NAZWA VARCHAR(255)
	)
	
CREATE TABLE TYP_DOSTAWY
	(
	ID_DOSTAWY INT PRIMARY KEY  NOT NULL,
	NAZWA VARCHAR(255)
	)
	
CREATE TABLE TYP_PRODUKTU
	(
	ID_TYP_PRODUKTU INT PRIMARY KEY  NOT NULL,
	NAZWA VARCHAR(255)
	)
	
CREATE TABLE PRODUKT
	(
	ID_PRODUKTU INT PRIMARY KEY  NOT NULL,
	ID_TYP_PRODUKTU INT FOREIGN KEY,
	NAZWA VARCHAR(255)
	)
	
CREATE TABLE KLIENT 
	(
	ID_KLIENT INT PRIMARY KEY  NOT NULL,
	IMIE VARCHAR(255) NOT NULL,
	NAZWISKO VARCHAR(255) NOT NULL
	)
	
CREATE TABLE IMPORTER
	(
	ID_IMPORTER INT PRIMARY KEY  NOT NULL,
	NAZWA VARCHAR(255) NOT NULL
	)
	
CREATE TABLE WOJEWODZTWO
	(
	ID_WOJEWODZTWO INT PRIMARY KEY  NOT NULL,
	NAZWA VARCHAR(255) NOT NULL 
	)
	
CREATE TABLE MIEJSCOWOSC
	(
	ID_MIEJSCOWOSC INT PRIMARY KEY  NOT NULL,
	ID_WOJEWODZTWO INT FOREIGN KEY NOT NULL,
	NAZWA_MIASTA VARCHAR(255) NOT NULL 
	)
	
CREATE TABLE SKLEP
	(
	ID_SKLEP INT PRIMARY KEY  NOT NULL,
	ID_MIEJSCOWOSC INT FOREIGN KEY NOT NULL,
	NAZWA VARCHAR(255) NOT NULL 
	)
	
CREATE TABLE TRANSAKCJA
	(
	ID_TRANSAKCJA INT PRIMARY KEY  NOT NULL,
	ID_TYP INT FOREIGN KEY NOT NULL,
	ID_KLIENT INT FOREIGN KEY NOT NULL,
	ID_IMPORTER INT FOREIGN KEY NOT NULL,
	ID_DOSTAWY INT FOREIGN KEY NOT NULL,
	ID_DATA INT FOREIGN KEY NOT NULL,
	ID_PRODUKTU INT FOREIGN KEY NOT NULL,
	KOSZT INT NOT NULL,
	ILOSC INT NOT NULL
	)
  • Rejestracja: dni
  • Ostatnio: dni
1

Brakuje średników po CREATE ?

CREATE TABLE FOO (A INTEGER);

  • Rejestracja: dni
  • Ostatnio: dni
1

Dodatkowo w tabeli TRANSAKCJA są bliżej nieokreślone klucze obce.

Kopiuj
 
...
ID_PRODUKTU INT FOREIGN KEY NOT NULL,
...

Klucz obcy, ale której tabeli? Składnia do tworzenia klucza obcego jest inna. W ramach CREATE TABLE można np. tak:

Kopiuj
CONSTRAINT nazwa_klucza FOREIGN KEY ( koluma klucza1, kolumna klucza2 ) REFERENCES (nazwa tabeli)
F7
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 26
0

Poprawiłem te Creaty ale nadal nie chcą się one załadować ;/ mógłby ktoś jeszcze na to zerknąć ?

Kopiuj
CREATE TABLE ROK 
	(
	ID_ROK int PRIMARY KEY NOT NULL,
	ROK INT NOT NULL 
	);
	
CREATE TABLE MIESIAC
	(
	ID_MIESIAC INT PRIMARY KEY NOT NULL,
    ID_ROK INT,
	NAZWA varchar(255)
	);
  
  
  alter table MIESIAC
  add constraint ID_ROK foreign key (ID_ROK) references ROK(ID_ROK);
	
CREATE TABLE DATA
	(
	ID_DATA INT PRIMARY KEY  NOT NULL,
	ID_MIESIAC INT,
	DATA_TRANSAKCJI datetime default getdate()
	);
  
  alter table DATA
  add constraint ID_MIESIAC foreign key (ID_MIESIAC) references MIESIAC(ID_MIESIAC);
	
CREATE TABLE TYP_TRANSAKCJI 
	(
	ID_TYP INT PRIMARY KEY  NOT NULL,
	NAZWA VARCHAR(255)
	);
	
CREATE TABLE TYP_DOSTAWY
	(
	ID_DOSTAWY INT PRIMARY KEY  NOT NULL,
	NAZWA VARCHAR(255)
	);
	
CREATE TABLE TYP_PRODUKTU
	(
	ID_TYP_PRODUKTU INT PRIMARY KEY  NOT NULL,
	NAZWA VARCHAR(255)
	);
	
CREATE TABLE PRODUKT
	(
	ID_PRODUKT INT PRIMARY KEY  NOT NULL,
	ID_TYP_PRODUKTU INT,
	NAZWA VARCHAR(255)
	);
  
  alter table PRODUKT
  add constraint ID_TYP_PRODUKTU foreign key (ID_TYP_PRODUKTU) references TYP_PRODUKTU(ID_TYP_PRODUKTU);
	
CREATE TABLE KLIENT 
	(
	ID_KLIENT INT PRIMARY KEY  NOT NULL,
	IMIE VARCHAR(255) NOT NULL,
	NAZWISKO VARCHAR(255) NOT NULL
	);
	
CREATE TABLE IMPORTER
	(
	ID_IMPORTER INT PRIMARY KEY  NOT NULL,
	NAZWA VARCHAR(255) NOT NULL
	);
	
CREATE TABLE WOJEWODZTWO
	(
	ID_WOJEWODZTWO INT PRIMARY KEY  NOT NULL,
	NAZWA VARCHAR(255) NOT NULL 
	);
	
CREATE TABLE MIEJSCOWOSC
	(
	ID_MIEJSCOWOSC INT PRIMARY KEY  NOT NULL,
	ID_WOJEWODZTWO INT,
	NAZWA_MIASTA VARCHAR(255) NOT NULL 
	);
	
	alter table MIEJSCOWOSC
    add constraint ID_WOJEWODZTWO foreign key (ID_WOJEWODZTWO) references WOJEWODZTWO(ID_WOJEWODZTWO);
	
CREATE TABLE SKLEP
	(
	ID_SKLEP INT PRIMARY KEY  NOT NULL,
	ID_MIEJSCOWOSC INT,
	NAZWA VARCHAR(255) NOT NULL 
	);
	
	alter table SKLEP
    add constraint ID_MIEJSCOWOSC foreign key (ID_MIEJSCOWOSC) references MIEJSCOWOSC(ID_MIEJSCOWOSC);
	
CREATE TABLE TRANSAKCJA
	(
	ID_TRANSAKCJA INT PRIMARY KEY  NOT NULL,
	ID_TYP INT,
	ID_KLIENT INT,
	ID_IMPORTER INT ,
	ID_DOSTAWY INT ,
	ID_DATA INT ,
	ID_PRODUKT int,
	KOSZT INT NOT NULL,
	ILOSC INT NOT NULL
	);
	
	
	
	alter table TRANSAKCJA
    add constraint ID_TYP foreign key (ID_TYP) references TYP_TRANSAKCJI(ID_TYP);
	add constraint ID_KLIENT foreign key (ID_KLIENT) references KLIENT(ID_KLIENT);
	add constraint ID_IMPORTER foreign key (ID_IMPORTER) references IMPORTER(ID_IMPORTER);
	add constraint ID_DOSTAWY foreign key (ID_DOSTAWY) references TYP_DOSTAWY(ID_DOSTAWY);
	add constraint ID_DATA foreign key (ID_DATA) references DATA(ID_DATA);
	add constraint ID_PRODUKT foreign key (ID_PRODUKT) references PRODUKT(ID_PRODUKT);
	 
abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
1
  1. zamiast typu varchar używaj typu varchar2
  2. każde narzędzie dokładnie wypisze co jest nie tak, np. SQLTools
  3. w oracle nie ma getdate jest sysdate
  4. nie ma typu datetime
  5. w ostatnim poleceniu musisz constrainty dodawać pojedyńczo
F7
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 26
0

Już poprawiłem chyba wszystko ale nadal wyskakują mi błędy przy 3 creatach : typ dostawy, miejscowosc, sklep

Kopiuj
DROP TABLE TRANSAKCJA;
DROP TABLE SKLEP;
DROP TABLE MIEJSCOWOSC;
DROP TABLE WOJEWODZTWO;
DROP TABLE PRODUKT;
DROP TABLE TYP_PRODUKTU;
DROP TABLE TYP_DOSTAWY;
DROP TABLE TYP_TRANSAKCJI;
DROP TABLE IMPORTER;
DROP TABLE KLIENT;
DROP TABLE DATA;
DROP TABLE MIESIAC;
DROP TABLE ROK;




CREATE TABLE ROK(
id_rok NUMBER(6) CONSTRAINT rok_pk PRIMARY KEY,
rok NUMBER(4)
);

CREATE TABLE MIESIAC(
id_miesiac NUMBER(6) CONSTRAINT miesiac_pk PRIMARY KEY,
id_rok NUMBER(6) CONSTRAINT rok_fk REFERENCES rok(id_rok),
nazwa VARCHAR2(20)
);

CREATE TABLE DATA(
id_data NUMBER(6) CONSTRAINT data_pk PRIMARY KEY,
id_miesiac NUMBER(6) CONSTRAINT miesiac_fk REFERENCES miesiac(id_miesiac),
dzien NUMBER(6)
);

CREATE TABLE KLIENT(
id_klient NUMBER(10) CONSTRAINT klient_pk PRIMARY KEY,
imie VARCHAR2(20),
nazwisko VARCHAR2(20)
);

CREATE TABLE IMPORTER(
id_importer NUMBER(10) CONSTRAINT importer_pk PRIMARY KEY,
nazwa VARCHAR2(20)
);

CREATE TABLE TYP_TRANSAKCJI(
id_typ NUMBER(6) CONSTRAINT typ_pk PRIMARY KEY,
nazwa VARCHAR2(20)
);

CREATY TABLE TYP_DOSTAWY(
id_dostawy NUMBER(6) CONSTRAINT dostawy_pk PRIMARY KEY,
nazwa VARCHAR2(20)
);

CREATE TABLE TYP_PRODUKTU(
id_typ_produktu NUMBER(6) CONSTRAINT typ_produktu_pk PRIMARY KEY,
nazwa VARCHAR2(20)
);

CREATE TABLE PRODUKT(
id_produkt NUMBER(6) CONSTRAINT produkt_pk PRIMARY KEY,
id_typ_produktu NUMBER(6) CONSTRAINT typ_produktu_fk REFERENCES TYP_PRODUKTU(id_typ_produktu),
nazwa VARCHAR2(20)
);

CREATE TABLE WOJEWODZTWO(
id_wojewodztwo NUMBER(6) CONSTRAINT wojewodztwo_pk PRIMARY KEY,
nazwa VARCHAR2(20)
);

CREATE TABLE MIEJSCOWOSC(
id_miejscowosc NUMBER(6) CONSTRAINT miejscowosc_pk PRIMARY KEY,
id_wojewodztwo NUMBER(6) CONSTRAINT wojewodztwo_fk REFERENCES WOJEWODZTWO(id_wojdzodztwo),
nazwa VARCHAR2(20)
);

CREATE TABLE SKLEP(
id_sklep NUMBER(6) CONSTRAINT sklep_pk PRIMARY KEY,
id_miejscowosc NUMBER(6) CONSTRAINT miejscowosc_fk REFERENCES MIEJSCOWOSC(id_miejscowosc),
nazwa VARCHAR2(20)
);

CREATE TABLE TRANSAKCJA(
id_transakcja NUMBER(6) CONSTRAINT transakcja_pk PRIMARY KEY,
id_typ NUMBER(6) CONSTRAINT typ_fk REFERENCES TYP_TRANSAKCJI(id_typ),
id_klient NUMBER(10) CONSTRAINT klient_fk REFERENCES KLIENT(id_klient),
id_importer NUMBER(10) CONSTRAINT importer_fk REFERENCeS IMPORTER(id_importer),
id_dostawy NUMBER(6) CONSTRAINT dostawy_fk REFERENCES TYP_DOSTAWY(id_dostawy),
id_data NUMBER(6) CONSTRAINT data_fk REFERENCES DATA(id_data),
id_produkt NUMBER(6) CONSTRAINT produkt_fk REFERENCES PRODUKT(id_produkt),
koszt NUMBER(6),
ILOSC NUMBER(6)
);










 
abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
0

ja naprawdę siły nie mam - ślepy czy niepełnosprytny jesteś??? Jakbyś użył jakiegokolwiek narzędzia (np. wspomniany SQLTools) to byś widział błąd, ba nawet jak popatrzysz na to co wyświetla coyote to od razu widać po KOLORACH, że coś jest nie tak w słowie CREATY. Dalej też jest literówka - przecież ich wcześniej NIE BYŁO i wystarczyło poprawić tylko to co napisałem i już. Co ty to za każdym razem przepisujesz???

  • Rejestracja: dni
  • Ostatnio: dni
0

Zamiast

Kopiuj
 
CREATE TABLE MIEJSCOWOSC(
id_miejscowosc NUMBER(6) CONSTRAINT miejscowosc_pk PRIMARY KEY,
id_wojewodztwo NUMBER(6) CONSTRAINT wojewodztwo_fk REFERENCES WOJEWODZTWO(id_wojdzodztwo),
nazwa VARCHAR2(20)
);

spróbuj:

Kopiuj
 
CREATE TABLE MIEJSCOWOSC(
id_miejscowosc NUMBER(6),
id_wojewodztwo NUMBER(6),
nazwa VARCHAR2(20),
CONSTRAINT miejscowosc_pk PRIMARY KEY (id_miejscowosc),
CONSTRAINT wojewodztwo_fk REFERENCES WOJEWODZTWO(id_wojdzodztwo)
);

Bez obrazy, ale pomijając składnię, to tabele ROK / MIESIAC / DATA wydają się po prostu bezsensowne. W modelu danych brakuje Ci jeszcze LICZBA / WYRAZ ;-)

NE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 39
0
Kopiuj
 CREATE TABLE TYP_DOSTAWY(
id_dostawy NUMBER(6) CONSTRAINT dostawy_pk PRIMARY KEY,
nazwa VARCHAR2(20)
);

CREATE TABLE MIEJSCOWOSC(
id_miejscowosc NUMBER(6) CONSTRAINT miejscowosc_pk PRIMARY KEY,
id_wojewodztwo NUMBER(6) CONSTRAINT wojewodztwo_fk REFERENCES WOJEWODZTWO( id_wojewodztwo ),
nazwa VARCHAR2(20)
);

Literówki masz!!

  • Rejestracja: dni
  • Ostatnio: dni
0

@Necronus brawo, ja to napisałem dwa dni temu...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.