-
Finde Fehler bei SQL nich...
Hallo!
Hier mal wieder ein neues Problem:
Ich lerne grad SQL und wollt mir eine Beispieltabelle anlegen. 4Spalten inkl. Datumsfeld. Nach dem CREATE Table will ich gleich n INSERT INTO machen und laufe da auf folgenden Fehler:
SQL7905 20 1 Position 1 Tabelle TEST21QL in GEISLER erstellt, Tabelle konnte jedoch nicht im Journal aufgezeichnet werden.
SQL0104 30 11 Position 59 Token , ungültig. Gültige Token: <ENDE DER ANWEISUNG>.
SQL7961 0 ROLLBACK beendet.
Die genannte Fehlerhafte Zeile ist unten...was läuft bei dem Datumsfeld falsch?
Definiert ist es folgendermaßen:
DATUM DATE NOT NULL WITH DEFAULT '0001-01-01');
0011.00 VALUES ('KATZE', 1, 2, 'SCHWARZ UND BUNT','20051205'),
-
Das Datum muss im ISO-Format übergeben werden:
VALUES ('KATZE', 1, 2, 'SCHWARZ UND BUNT','2005-12-05')
Das Komma am Ende muss weg, da mit Klammer-Zu das Statement beendet ist.
-
Mit den verschiedenen Datenformaten hab ich etwas rumgespielt aber hatte nie was gebracht.
Das Komma hinter der Klamma steht da, weil ich gleich mehrere Values hinzufügen will und da stand im handbuch, man solle es per ',' trennen...im Ganzen sieht das also so aus
INSERT INTO GEISLER.TEST2SQL
(NAME, EINTRAGSNR, ANZAHL, BEMERKUNG, DATUM)
VALUES ('KATZE', 1, 2, 'SCHWARZ UND BUNT','2005-12-05')
('PFERD', 6, 1, 'GROSS UND BREIT','07.12.2005')
('HUND', 2, 4, 'ANGST','2006-07-10')
('MAUS', 5, 2, 'GRAU UND BRAUN', '2006-08-08')
('VOGEL', 3, 1,' DOOF', '2006-08-07')
('BAER', 4, 5, 'LIEB UND SUESS', '2006-08-15');
Lasse ich nun die kommas weg, dann krieg ich nen neuen Fehler; mache ich es mit Komma, kommt der "alte"Fehler
SQL0104 30 11 Position 61 Token , ungültig. Gültige Token: <ENDE DER
ANWEISUNG>.
SQL7961 0 ROLLBACK beendet.
-
Mehrere Zeilen mit einem Insert funktioniert interaktiv nicht bzw. wird nicht unterstützt.
Also: Pro Satz ein eigener Insert !
-
Zitat von Fuerchau
Mehrere Zeilen mit einem Insert funktioniert interaktiv nicht bzw. wird nicht unterstützt.
Wie kommst Du schon wieder auf dieses schmale Brett?
Auch interaktiv können ab Release V5R3M0 mehrere Zeilen auf einmal eingefügt werden. (Auch ohne Sub-Select!)
Das folgende Beispiel funktioniert unter V5R3M0:
PHP-Code:
CREATE TABLE MySchema.TEST
(NAME CHAR (10 ) NOT NULL WITH DEFAULT,
ZAHL INTEGER NOT NULL WITH DEFAULT,
DATUM DATE NOT NULL WITH DEFAULT);
insert into MySchema.Test
(Name, Zahl, Datum)
Values('Meier', 123, '2006-08-01'),
('Schulze', 45678, '10.08.2006');
Birgitta
-
Ich habe immer noch Kunden, die mit V5R1 oder sogar V4R5 und V4R3 arbeiten.
Wo ist der kleinste gemeinsame Nenner ?
Man könnte auch immer gleich mit "In V5R4 gehts doch auch" und "mit V5R5 kommts auf jeden Fall" antworten, aber helfen tut's nicht.
Da bewege ich mich (meistens) doch lieber auf der sicheren Seite
PS:
Da das Komma als fehlerhaft abgewiesen wurde, liegt zumindestens NICHT V5R3 vor.
-
Also ich wollte keinen Streit provozieren...ich bin über jede Hilfe dankbar.
So...um diesmal auszuschließen, das es an mir liegt, hab ich die Commands nur kopiert-->
1
2 CREATE TABLE GEISLER.TESTSQL
3 (NAME CHAR (10 ) NOT NULL WITH DEFAULT,
4 ZAHL INTEGER NOT NULL WITH DEFAULT,
5 DATUM DATE NOT NULL WITH DEFAULT);
6
7 INSERT INTO MYSCHEMA.TEST
8 (NAME, ZAHL, DATUM)
9 VALUES('MEIER', 123, '2006-08-01'),
10 ('SCHULZE', 45678, '10.08.2006');
und wollte dann mit RS die Sache wandeln: WIEDER triff folgender Fehler auf:
SQL0104 30 9 Position 35 Token , ungültig. Gültige Token: <ENDE DER
ANWEISUNG>.
Das triffe mal wieder genau die Datumsangabe:
Habe es ausprobiert mit '2006-08-01' und mit '2006.08.01' - der Fehler bleibt aber gleich
-
Also hast du noch kein V5R3 !!!!
Und damit kannst du in einem Insert nur 1 Zeile einfügen.
Der Fehler weist doch darauf hin, dass in Zeile 9, Stelle 35 das Komma nicht erwartet wird sondern das "Ende der Anweisung" !
-
Hm, wenn du meist (bin zwar eigentlich ziemlich davon übrezeugt aber du kennst dich besser aus).
Ich hab die VALUES jetzt also getrennt.
1
2 CREATE TABLE GEISLER.TESTSQL
3 (NAME CHAR (10 ) NOT NULL WITH DEFAULT,
4 ZAHL INTEGER NOT NULL WITH DEFAULT,
5 DATUM DATE NOT NULL WITH DEFAULT);
6
7 INSERT INTO GEISLER.TESTSQL
8 (NAME, ZAHL, DATUM)
9 VALUES('MEIER', 123, '2006.08.01'),
10 VALUES('MUELL', 587, '10.08.2006');
Es entsteht folgender Fehler:
SQL0104 30 9 Position 35 Token , ungültig. Gültige Token: <ENDE DER
ANWEISUNG>.
-
Probier doch dieses aus:
1
2 CREATE TABLE GEISLER.TESTSQL
3 (NAME CHAR (10 ) NOT NULL WITH DEFAULT,
4 ZAHL INTEGER NOT NULL WITH DEFAULT,
5 DATUM DATE NOT NULL WITH DEFAULT);
6
7 INSERT INTO GEISLER.TESTSQL
8 (NAME, ZAHL, DATUM)
9 VALUES('MEIER', 123, '2006-08-01');
7 INSERT INTO GEISLER.TESTSQL
8 (NAME, ZAHL, DATUM)
10 VALUES('MUELL', 587, '2006-08-10');
Wenn ich mich nicht verzählt habe (laut deiner Quelle) ist Stelle 35 genau das Komma nach der Klammer-Zu !
-
Jajaja...hab an der falschen Skala gezählt und den Kommentar gleich wieder rausgenommen aber hast mich doch erwischt.
Nun zu dem Problem: Folgender Quelltext steht jetzt also da-nur von dir kopiert:
1
2 CREATE TABLE GEISLER.TESTSQL
3 (NAME CHAR (10 ) NOT NULL WITH DEFAULT,
4 ZAHL INTEGER NOT NULL WITH DEFAULT,
5 DATUM DATE NOT NULL WITH DEFAULT);
6
7 INSERT INTO GEISLER.TESTSQL
8 (NAME, ZAHL, DATUM)
9 VALUES('MEIER', 123, '2006-08-01');
10
11 INSERT INTO GEISLER.TESTSQL
12 (NAME, ZAHL, DATUM)
13 VALUES('MUELL', 587, '2006-08-10');
Ergibt folgende Meldungen:
SQL7905 20 1 Position 1 Tabelle TESTSQL in GEISLER erstellt, Tabelle
konnte jedoch nicht im Journal aufgezeichnet werden.
SQL7008 30 7 Position 3 TESTSQL in GEISLER für Operation ungültig.
SQL7961 0 ROLLBACK beendet.
Ist das eigentlich schlimm mit dem Journal?
Wenn ich bei dem INSERT INTO statt dem qualfizierten Namen den einfachen Namen, sprich
7 INSERT INTO TESTSQL nehme, dann kommt diese Meldung:
SQL0204 30 7 Position 3 TESTSQL der Art *FILE in AZOPER nicht
gefunden.
-
Da du RUNSQLSTM verwendest musst du den Commit-Modus angeben.
Deine Lib enthält kein Journal, daher die Fehlermeldung.
Dies kann ignoriert werden wenn du beim Commit *NONE angibst.
Similar Threads
-
By olbe in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 28-12-06, 13:53
-
By jakarto in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 24-07-06, 13:41
-
By GraueEminenz in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 10-07-06, 11:58
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
By Timmo in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 06-05-02, 08:48
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks