# SQL Datenbank INSERT INTO



## labelleamelie (14. Mai 2021)

hey, kann mir jemand sagen was ich falsch mache?



CREATE TABLE FerienWhng(
    FWID                    INTEGER NOT NULL,  
    Preis                   NUMBER(5, 2) NOT NULL,
    FWName                  VARCHAR2(30) UNIQUE,
    AnzZimmer               INTEGER NOT NULL,
    Groesse                 NUMBER(5, 2) NOT NULL,
    AdrID                   INTEGER NOT NULL UNIQUE,   

    CONSTRAINT FerienWhng__FWID_pk PRIMARY KEY (FWID),
    CONSTRAINT size_FerienWhng_Groesse_AnzZimmer CHECK (FWName >=2 AND (Groesse >=0) AND AnzZimmer > 0),
    CONSTRAINT FerienWhng_AdrID_fk FOREIGN KEY (AdrID) REFERENCES Adresse(AdrID)
);

--FerienWhng
INSERT INTO FerienWhng (FWID, Preis, FWName, AnzZimmer, Groesse, AdrID)
VALUES (0, 299.00, 'Dschungelbuch Ferienwohnung', 2, 72.00, 0);

INSERT INTO FerienWhng (FWID, Preis, FWName, AnzZimmer, Groesse, AdrID)
VALUES (1, 220.00, 'Baloo Ferienwohnung', 1, 43.00, 1);

INSERT INTO FerienWhng (FWID, Preis, FWName, AnzZimmer, Groesse, AdrID)
VALUES (2, 399.99, 'Mogli Ferienwohnung', 3, 36.00, 2);

INSERT INTO FerienWhng (FWID, Preis, FWName, AnzZimmer, Groesse, AdrID)
VALUES (3, 780.00, 'Kaa Ferienwohnung', 4, 120.00, 3);


Fehler beim Start in Zeile: 28 in Befehl -
INSERT INTO FerienWhng (FWID, Preis, FWName, AnzZimmer, Groesse, AdrID)
VALUES (0, 299.00, 'Dschungelbuch Ferienwohnung', 2, 72.00, 0)
Fehlerbericht -
ORA-01722: Ungültige Zahl


----------



## Dukel (14. Mai 2021)

Zum einen: Nutze doch die Code Tags.
Zum anderen: Wie wäre es mit DB Grundlagen lernen?
Ein Fehler wird dir doch angezeigt: "Ungültige Zahl".

In deinem Constraint checkst du den namen:
FWName >=2
Hier ist aber ein String und keine Zahl.

Tipp: Preise nicht so abspeichern. Z.b. als Cent und dann die Euros daraus ausrechnen.


----------



## labelleamelie (14. Mai 2021)

Dukel hat gesagt.:


> Zum einen: Nutze doch die Code Tags.
> Zum anderen: Wie wäre es mit DB Grundlagen lernen?
> Ein Fehler wird dir doch angezeigt: "Ungültige Zahl".
> 
> ...


Erst einmal Danke für deine Antwort. 
Das hat nichts mit DB Grundlagen lernen zu tun, manchmal übersieht man eine Kleinigkeit, die zu Fehler führen, wie im vergangenen Beitrag, als ich ein n zu viel hatte, wenn du keine Lust zum helfen hast, dann antworte nicht. Die Frage hättest du dir auch sparen können. Trotzdem Danke.


----------



## Dukel (14. Mai 2021)

Ich wollte nur mit den Punkten helfen, neben dem eigendlichen Problem, die mir aufgefallen sind.


----------



## kneitzel (14. Mai 2021)

Wenn er nicht geantwortet hätte, dann hättest du nicht so schnell erfahren, wo das Problem ist:


Dukel hat gesagt.:


> In deinem Constraint checkst du den namen:
> FWName >=2
> Hier ist aber ein String und keine Zahl.


(Nur noch einmal geteilt, falls Du es übersehen hast!)

Und ich teile durchaus die Sicht von @Dukel und das war ja kein Vorwurf sondern ein gut gemeinter Ratschlag.

So ein Constraint auf einem VARCHAR hast Du doch vor kurzem schon einmal gebracht:





						SQL Datenbank Tabelle insert
					

habe wieder folgendes Problem, kann mir eventuell jemand helfen?  CREATE TABLE Land(     LandID                  INTEGER NOT NULL UNIQUE,     LandName                VARCHAR2(30) NOT NULL,          CONSTRAINT size_Land CHECK (LandName >= 2),     CONSTRAINT Land_pk PRIMARY KEY(LandName) )...



					www.java-forum.org
				




Das ist alles ok - ich will Dir da auch keinen Vorwurf machen. Aber ebenso darfst Du uns durchaus unterstellen, dass wir helfen wollen. Nur eben haben wir immer den Gedanken im Hinterkopf: Was für Wissen können wir vermitteln, damit Du entsprechende Herausforderungen eigenständig meistern kannst.

Ein Hinweis auf den reinen Fehler mit kurzer Beschreibung scheint da nicht gereicht zu haben. Nur bei so absoluten Basics haben wir etwas, das wir hier im Rahmen des Forums nicht vermitteln können. Wir werden hier jetzt nicht anfangen, ein SQL Buch zu schreiben (um es überspitzt auszudrücken). Das mit den Grundlagen hätte ich Dir vor paar Tagen schon gesagt, aber vor dem Abschicken hatte ich bemerkt, dass das SQL Tutorial, das ich gefunden hatte, nur DML (Data Manipulation Language) umfasste und Deine Probleme sind ja im DDL (Data Definition Language) Bereich. Und ich muss gestehen: Ich war da einfach zu faul, mit dem Smartphone noch weiter suchen... 

Du bist uns herzlich willkommen und wir helfen gerne weiter. Aber die Grundlagen solltest Du Dir doch etwas mehr erarbeiten bzw, diese durch Praxis etwas mehr vertiefen. (Wobei Du ja durchaus an Letzterem zu sein scheinst ... Da wäre die Aussage einfach ein "weiter so - bleib dran")


----------



## labelleamelie (14. Mai 2021)

kneitzel hat gesagt.:


> Wenn er nicht geantwortet hätte, dann hättest du nicht so schnell erfahren, wo das Problem ist:
> 
> (Nur noch einmal geteilt, falls Du es übersehen hast!)
> 
> ...


Hätte man mich darauf hingewiesen, so wie du es geschrieben hast, wäre das auch kein Problem aber " Wie wäre es mit DB Grundlagen lernen?" ist für mich kein Hinweis, sondern eine unhöfliche Art. 

"Ein Hinweis auf den reinen Fehler mit kurzer Beschreibung scheint da nicht gereicht zu haben. " siehe letzte Beiträge, meine Gedanken Gänge und was ich rumprobiert habe, habe ich immer beschrieben. 

Ich meine warum, gibt es so eine Plattform, wenn man sich Mühe gibt und kleine Fehler übersieht und eine dritte Meinung einholen möchte.


----------



## kneitzel (14. Mai 2021)

Ich fürchte, dass Du da zu viel rein interpretierst. Ich bin sicher, dass @Dukel in keiner Weise abfällig oder unhöflich sein wollte.

Nur oft schreiben wir einfach schnell unsere Gedanken als Antwort zusammen in der Hoffnung, dass es hilfreich ist. Man mag da zwar gerne diskutieren, ob es nicht besser wäre, bei wenig Zeit ggf. nicht zu schreiben. Dann gäbe es aber z.B. ca. 75% meine Beiträge nicht, die fast alle in kleinen "Minipausen" entstehen.

Daher evtl. einfach ein etwas dickeres Fell zulegen und über so Dinge etwas drüber hinweg sehen.


----------

