Avatar billede everclear Praktikant
05. oktober 2006 - 10:38 Der er 14 kommentarer og
1 løsning

Problemer med SELECT Statement

Jeg sidder og har kodet en .NET applikation, der benytter Oracles .NET dataconnectors og det spiller bare. Programmet fungerer upåklageligt når jeg kører det....lige indtil jeg compiler det og installerer det....så får jeg en fejl ved denne SQL sætning:

SELECT ROWNUMBER FROM XAL_SUPERVISOR.STOCKTABLE WHERE MW_AUTOCREATE = 1 AND NETWEIGHT = 1,05 AND DISPLAY not like 'I%';

Fejlen er: ORA-00933 SQL command not properly ended.

Nogen der har et bud på hvorfor? Det virker jo fint når jeg kører det igennem Visual Studio...
Avatar billede teepee Nybegynder
05. oktober 2006 - 10:46 #1
Er det ikke den klassiske komma punktum forskel på dansk og engelsk. Har du prøvet at udskifte 1,05 med 1.05?
Avatar billede pgroen Nybegynder
05. oktober 2006 - 11:00 #2
teepee har sikkert ret; at Oracle-fejlen er på engelsk, kunne tyde på det...

Hvis de '1.05' er en variabel, bør du nok bruge bind-variable i stedet (uden at jeg i øvrigt aner hvorledes man gør det i .NET :-))
Avatar billede everclear Praktikant
05. oktober 2006 - 11:07 #3
Har overvejet det, men skifter jeg 1,05 med 1.05, så får jeg en "invalid character" fejl.....så går ikke udfra det er der problemet ligger....og desværre er 1,05 heller ikke en variabel. Det er en fast størrelse.
Avatar billede teepee Nybegynder
05. oktober 2006 - 11:10 #4
Har du prøvet at skyde sql'en af i en Oracle sql*plus klient?
Avatar billede pierrehusted Nybegynder
05. oktober 2006 - 11:13 #5
Prøv at fjerne "AND NETWEIGHT = 1,05", og se om du stadig får fejl.

Du får ganske vidst så ikke det korrekte resultat - men får da opklaret om det er 1,05/1.05 der giver fejlen.


Mener da også godt at du kan bruge en bind-variabel selv om det er samme værdi hver gang (kan i hvert fald ikke se noget Oracle problem i det, men ved ikke med Visual Studio/.NET).
Avatar billede teepee Nybegynder
05. oktober 2006 - 11:23 #6
Forstår ikke at du få invalid character når du skifter mellem komme og punktum:
SQL> create table dummy_xtu (col1 number(10,3));

Tabel er oprettet.

SQL> select * from dummy_xtu where col1 = 10,5;
select * from dummy_xtu where col1 = 10,5
                                      *
FEJL i linie 1:
ORA-00933: SQL-kommando er ikke korrekt afsluttet


SQL> select * from dummy_xtu where col1 = 10.5;

Ingen rækker er valgt

SQL> drop table dummy_xtu;

Tabel er droppet.
Avatar billede teepee Nybegynder
05. oktober 2006 - 11:24 #7
Er netweight et varchar/char felt måske?
Avatar billede everclear Praktikant
05. oktober 2006 - 11:32 #8
Nix.....netweight er et number....
Avatar billede everclear Praktikant
05. oktober 2006 - 11:35 #9
Hvis jeg kører denne SQL i TOAD bliver den godtaget:

SELECT ROWNUMBER FROM XAL_SUPERVISOR.STOCKTABLE WHERE MW_AUTOCREATE = 1 AND DISPLAY not like 'I%'

Men programmet kommer med en invalid character fejl....

MW_AUTOCREATE er også et NUMBER-felt.
Avatar billede teepee Nybegynder
05. oktober 2006 - 11:45 #10
Er sql'en noget der genereres eller er det en fast tekststreng i koden?
Jeg tænker på om der er sneget sig et "usynligt" tegn ind som ikke tillades.
Avatar billede pgroen Nybegynder
05. oktober 2006 - 12:06 #11
Hov, er det en dobbeltfejl; er der også et problem med apostrofferne ?
- Virker det, hvis du fjerner "AND DISPLAY not like 'I%'" ?
Avatar billede everclear Praktikant
05. oktober 2006 - 12:21 #12
Nej jeg får stadig en invalid character. SQL'en er hardcodet direkte ind. Ikke dynamisk genereret eller noget.
Avatar billede hgc Nybegynder
05. oktober 2006 - 12:34 #13
Invalide character kan stamme fra det sidste semikolon,
f.eks vil følgende annonyme sql-blok give ora-00911

begin
execute immediate 'select count(*) from temptab where nr = 4;';
end;

men denne - hvor semikolon er fjernet - ikke giver ora-00911

begin
execute immediate 'select count(*) from temptab where nr = 4';
end;
Avatar billede everclear Praktikant
05. oktober 2006 - 12:45 #14
Så fik jeg det til at spille:-) Gider du smide et svar hgc? Og tak for hjælpen til alle...
Avatar billede hgc Nybegynder
05. oktober 2006 - 12:50 #15
svar
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