Avatar billede steven Nybegynder
19. juni 2005 - 20:19 Der er 13 kommentarer og
1 løsning

SQL der fejler

Hej, er der en der kan hjælpe mig med hvorfor denne sql fejler - tak:

CREATE SEQUENCE Category_seq
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
NOCACHE

CREATE TABLE Category ( CategoryId NUMBER(20),
                        CategoryName VARCHAR2(30),
                        ParentCategoryId NUMBER(20))

INSERT INTO Category (CategoryId, CategoryName, ParentCategoryId) VALUES (Category_seq.nextval, "Sidernes baggrundsbilleder", 0)
INSERT INTO Category (CategoryId, CategoryName, ParentCategoryId) VALUES (Category_seq.nextval, "Billeder og diagrammer", 0)
INSERT INTO Category (CategoryId, CategoryName, ParentCategoryId) VALUES (Category_seq.nextval, "Fotografier", 0)
INSERT INTO Category (CategoryId, CategoryName, ParentCategoryId) VALUES (Category_seq.nextval, "Andet", 0)
INSERT INTO Category (CategoryId, CategoryName, ParentCategoryId) VALUES (Category_seq.nextval, "Logos", 0)

...og her kommer fejlen så:
Warning: ociexecute(): OCIStmtExecute: ORA-00933: SQL-kommando er ikke korrekt afsluttet in c:\programmer\oracledb\apache\apache\htdocs\inc\func_database.inc on line 83

Mvh, Steven
Avatar billede steven Nybegynder
19. juni 2005 - 20:20 #1
ups, glemte at skrive, at den fejler i INSERT INTO sql'en, som jeg forsøger at køre i en blok.

Mvh, Steven
Avatar billede arne_v Ekspert
19. juni 2005 - 20:21 #2
mangler du ikke semikolonner ?
Avatar billede arne_v Ekspert
19. juni 2005 - 20:21 #3
altså et semilkolon efter hver statement ?
Avatar billede arne_v Ekspert
19. juni 2005 - 20:22 #4
(og så er det vist mest standard at bruge 'streng' fremfor "streng")
Avatar billede steven Nybegynder
19. juni 2005 - 20:23 #5
Hej Arne,

Har nu rettet sql til:
INSERT INTO Category (CategoryId, CategoryName, ParentCategoryId) VALUES (Category_seq.nextval, 'Sidernes baggrundsbilleder', 0); INSERT INTO Category (CategoryId, CategoryName, ParentCategoryId) VALUES (Category_seq.nextval, 'Billeder og diagrammer', 0); INSERT INTO Category (CategoryId, CategoryName, ParentCategoryId) VALUES (Category_seq.nextval, 'Fotografier', 0); INSERT INTO Category (CategoryId, CategoryName, ParentCategoryId) VALUES (Category_seq.nextval, 'Andet', 0); INSERT INTO Category (CategoryId, CategoryName, ParentCategoryId) VALUES (Category_seq.nextval, 'Logos', 0);

Men får denne fejl:
Warning: ociexecute(): OCIStmtExecute: ORA-00911: ugyldigt tegn in c:\programmer\oracledb\apache\apache\htdocs\inc\func_database.inc on line 83

Mvh, Steven
Avatar billede arne_v Ekspert
19. juni 2005 - 20:30 #6
de ser rigtige ud

men du udfører vel kun en sætning af gangen ikke ?
Avatar billede steven Nybegynder
19. juni 2005 - 20:35 #7
nej, jeg vil gerne køre dem alle på én gang
Avatar billede steven Nybegynder
19. juni 2005 - 20:36 #8
er der en måde at gøre dette på?
Avatar billede arne_v Ekspert
19. juni 2005 - 20:39 #9
det mener jeg ikke
Avatar billede arne_v Ekspert
19. juni 2005 - 20:39 #10
du kan naturligvis udføre dem alle i en stored procedure

eller wrappe dem alle sammen i en enkelt transaktion
Avatar billede steven Nybegynder
19. juni 2005 - 20:41 #11
kan du give et eksempel?
Avatar billede arne_v Ekspert
19. juni 2005 - 21:01 #12
-- alle dine create table
SET AUTOCOMMIT OFF;
-- alle dine insert
COMMIT;

[autocommit er iøvrigt formentligt allerede off]
Avatar billede steven Nybegynder
19. juni 2005 - 21:16 #13
Hej Arne,

Jeg har nu kodet mig ud af det på slavemetoden, ved at køre hver insert for sig. Skal desværre tilføje en del ekstra data :-S

Post et svar, så får du points

Mvh, Steven
Avatar billede arne_v Ekspert
19. juni 2005 - 21:28 #14
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester