Avatar billede el_fredo Praktikant
26. november 2003 - 14:14 Der er 5 kommentarer og
1 løsning

Inner Join

Jeg får en fejl når jeg forsøger at lave en INNER JOIN i C#. Fejlen er:

ORA-00933: SQL-kommando er ikke korrekt afsluttet


SQL-sætningen ser ud som følger:

sql = "SELECT s.medarbejdernummer, m.navn1, s.antalregistreret, s.posteringsdato FROM sagspost s INNER JOIN medarbejder m ON (s.medarbejdernummer) = m.medarbejdernummer;";


Jeg har prøvet diverse ting. Intet hjælper. Adgangen til databasen er fin nok. Det er KUN i forbindelse med INNER JOIN at fejlen kommer.

Det skal også lige nævnes, at medarbejdernummer i de to tilfælde ikke er helt ens. Den ene er et tal, mens den anden er en tekststreng. Det er ikke mig der har oprettet databasen, og det er IKKE muligt at ændre, da alle oprettede data derved skal ændres (det er MANGE).
Avatar billede el_fredo Praktikant
26. november 2003 - 14:15 #1
Jeg bruger forresten 8i, så jeg kan ikke bruge de smarte nye 9i-finesser.
Avatar billede pgroen Nybegynder
26. november 2003 - 14:22 #2
INNER JOIN syntaxen kommer først i 9i
- skriv i stedet:

SELECT s.medarbejdernummer, m.navn1, s.antalregistreret, s.posteringsdato FROM sagspost s WHERE to_char(s.medarbejdernummer) = m.medarbejdernummer

- eller omvendt, afhængigt af hvilken kolonne, der er tekst, og hvilken der er number...
Avatar billede el_fredo Praktikant
26. november 2003 - 14:29 #3
Hmm. Det vidste jeg ikke. Ved du så, om den "manuelle" join du laver, er meget langsom i forhold til?
Avatar billede pgroen Nybegynder
26. november 2003 - 14:33 #4
Nej, der er ingen forskel - men du skal selvfølgelig have index på medarbejdernummer

(du kan i princippet undvære to_char, hvis du er SIKKER på at der ikke optræder tekst i medarbejdernummeret)
Avatar billede el_fredo Praktikant
26. november 2003 - 14:48 #5
Nå. Tak for hjælpen. Jeg har valgt ikke at overføre en samlet DB, men i stedet overføre de to enkeltvist, og så på et senere tidspunkt anvende medarbejder-tabellen som reference til medarbejdernavnet. Men det var rart at få afkræftet, at det ikke kan lade sig gøre i 8i - tak for det hurtige svar.
Avatar billede pgroen Nybegynder
26. november 2003 - 14:56 #6
Selv tak.

Du skriver det ikke kan lade sig gøre i 8i - Der er ikke nogen ny funktionalitet, eller forbedret performance i INNER JOIN
- det er bare syntaxen der er anderledes...
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