Hjælp til opsætning af tabeller.

Tags:    databaser

<< < 12 > >>
En ven og jeg er gået i gang med et læringsopgave vi har stillet os
selv. Det går ud på at bygge en telefonbog applikation i java, med en oracle
database.

Vi har dog en masse fejl i databasen når vi prøver at oprette den.

Vi har prøvet at få den op på 3. normalform, hvor vi blev nød til at
bruge en attribut som hedder pno(personnr.), startede fra 1.

Jeg ved der er en auto-funktion i SQL hvor den selv giver det næste
nr, men har ikke kunnet finde den i vores lærebog.

---------------------------------------------------------------
-- Phonebook Database; Create Tables Script
-- by Ullah & Winther
---------------------------------------------------------------

drop table Persons cascade constraints;
create table Persons (
pnr number(4) not null primary key references phone,
fname varchar2(15) not null,
lname varchar2(15) not null,
adr varchar2(30) not null,
zip number(4) not null references zip;

drop table zip cascade constraints;
create table zip (
zip number(5) references zipcodes not null primary key,
city varchar(15) not null;

rop table phone cascade constraints;
create table phone (
pnr number(5) not null primary key,
htlf number(8),
mtlf number(8);

insert into city VALUES(3460, Birkerød);
insert into phone VALUES (1, 48181818, 24242424);
insert into person VALUES (1,Mark, Jensen, Pilevang 30, 3460);

Hvis nogen kunne hjælpe ville det være great!



Næste problem..

insert into city VALUES(3460, Birkerød);
insert into phone VALUES (1, 48181818, 24242424);
insert into person VALUES (1,Mark, Jensen, Pilevang 30, 3460);


Kommer med disse fejl:

Error starting at line 1 in command:
insert into city VALUES(3460, Birkerød)
Error at Command Line:1 Column:12
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:

Error starting at line 2 in command:
insert into phone VALUES (1, 48181818, 24242424)
Error report:
SQL Error: ORA-00001: unique constraint (GRMIWIN1.SYS_C00182530) violated
00001. 00000 - "unique constraint (%s.%s) violated"
*Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.
For Trusted Oracle configured in DBMS MAC mode, you may see
this message if a duplicate entry exists at a different level.
*Action: Either remove the unique restriction or do not insert the key.

Error starting at line 3 in command:
insert into person VALUES (1,Mark, Jensen, Pilevang 30, 3460)
Error at Command Line:3 Column:52
Error report:
SQL Error: ORA-00917: missing comma
00917. 00000 - "missing comma"
*Cause:
*Action:




OKay har skrevet person istedet for persons

så her er fejl meddelelsen igen:

Error starting at line 1 in command:
insert into city VALUES(3460, Birkerød)
Error at Command Line:1 Column:12
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:

Error starting at line 2 in command:
insert into phone VALUES (1, 48181818, 24242424)
Error report:
SQL Error: ORA-00001: unique constraint (GRMIWIN1.SYS_C00182530) violated
00001. 00000 - "unique constraint (%s.%s) violated"
*Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.
For Trusted Oracle configured in DBMS MAC mode, you may see
this message if a duplicate entry exists at a different level.
*Action: Either remove the unique restriction or do not insert the key.

Error starting at line 3 in command:
insert into persons VALUES (1,Mark, Jensen, Pilevang 30, 3460)
Error at Command Line:3 Column:53
Error report:
SQL Error: ORA-00917: missing comma
00917. 00000 - "missing comma"
*Cause:
*Action:




Der skal sættes ' ' rundt om alle strenge.



insert into person VALUES (1,'Mark','Jensen','Pilevang 30', 3460);

Error starting at line 1 in command:
insert into person VALUES (1,'Mark','Jensen','Pilevang 30', 3460)
Error at Command Line:1 Column:12
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:



Hedder din tabel person eller persons?



Alle sammen virker nu :)

Godt nok!

Men nu der et problem mere.. Man skal virkelig kravle før man kan gå..

I vores Java databaseklasse, vil ikke gå med til man sætter flere attributter ind i et Persons objekt, som vel også er forståeligt, men hvordan kan man så få dataerne ud?


//select
String query = "SELECT p.pnr, fname, lname, adr, p.zip, city, htlf, mtlf" +
"FROM JOIN persons p AND phone ph USING(pnr) AND JOIN perons AND zip z USING(zip)" +
"WHERE" + fname + "LIKE p.fname AND" + lname + "LIKE p.lname";

rs = statement.executeQuery(query);
if (rs.next())
{
//Persons lyser rødt herunder:
p = new Persons(rs.getInt(1), fname, lname, rs.getString(4), rs.getInt(5),
rs.getString(6), rs.getInt(7), rs.getInt(8));
}

Kan du hjælpe med det?



I den sidste join har du skrevet perons som jeg vil tro skal være persons. :)



Ja tak, det er nu rettet, men stadig har vi det problem med at constructoren ikke oprettte objektet..



Prøv med følgende SQL statement.

Fold kodeboks ind/udJava kode 




Indlæg senest redigeret d. 30.09.2009 18:56 af Bruger #6559
Hvordan ser jeres definition ud på jeres Persons klasse?



<< < 12 > >>
t