Avatar billede bumle90 Nybegynder
11. december 2004 - 17:02 Der er 13 kommentarer og
1 løsning

oversætte SQL

Jeg har ikke arbejdet med ORACLE før, og har derfor skrevet en ganske almindelig SQL...Men den kan altså ikke eksekvere på en oracle server...Så jeg håbede nogle ville kigge lidt på den og evt. fortælle hvilke ting man ikke kan i oracle. Den kører i en access base denne SQL

SELECT TA_STED.STED_NR, TA_AUTOMAT.AUT_NR, TA_WWW_BESTIL.BESTIL_NR, TA_WWW_BESTIL_AUT.BESTIL_LINIE_NR, TA_STED.STED_NAVN, TA_STED.STED_ADRESSE, TA_AUT_NAVN.AUT_NAVN, TA_AUT_ART.AUT_ART_NAVN, TA_ELKTR.ELKTR_BETEGN, TA_FABR.FABR_BETEGN, TA_KAB.KAB_BETEGN, TA_PROG_VERS.PROG_VERS, TA_WWW_BESTIL.BESTIL_DATO, TA_WWW_BESTIL.OENSKE_DATO, TA_YDELSE.YDELSE_NAVN FROM (((TA_FABR INNER JOIN (((((TA_WWW_BESTIL_AUT RIGHT JOIN TA_AUTOMAT ON TA_WWW_BESTIL_AUT.AUT_NR = TA_AUTOMAT.AUT_NR) INNER JOIN TA_STED ON TA_AUTOMAT.STED_NR = TA_STED.STED_NR) LEFT JOIN TA_WWW_BESTIL ON TA_WWW_BESTIL_AUT.BESTIL_NR = TA_WWW_BESTIL.BESTIL_NR) INNER JOIN (TA_AUT_ART INNER JOIN TA_AUT_NAVN ON TA_AUT_ART.AUT_ART_NR = TA_AUT_NAVN.AUT_ART_NR) ON TA_AUTOMAT.AUT_NAVN_NR = TA_AUT_NAVN.AUT_NAVN_NR) INNER JOIN TA_ELKTR ON TA_AUTOMAT.ELKTR_NR = TA_ELKTR.ELKTR_NR) ON TA_FABR.FABR_NR = TA_ELKTR.FABR_NR) INNER JOIN TA_KAB ON TA_AUTOMAT.KAB_NR = TA_KAB.KAB_NR) INNER JOIN TA_PROG_VERS ON (TA_AUT_NAVN.AUT_NAVN_NR = TA_PROG_VERS.AUT_NAVN_NR) AND (TA_AUTOMAT.PROG_NR = TA_PROG_VERS.PROG_NR)) LEFT JOIN TA_YDELSE ON TA_WWW_BESTIL_AUT.YDELSE_NR = TA_YDELSE.YDELSE_NR
Avatar billede knico Nybegynder
11. december 2004 - 17:06 #1
Hvilken Oracle DB version?
Avatar billede bumle90 Nybegynder
11. december 2004 - 17:07 #2
puuha...den nyeste vidst
Er det 10?
Avatar billede bumle90 Nybegynder
11. december 2004 - 17:08 #3
Er det helt ved siden af oracle syntax det der da?
Avatar billede knico Nybegynder
11. december 2004 - 17:13 #4
Næ, men det er først fra version 9 at join laves på den måde, så det var bare det jeg skulle vide. Jeg kigger lidt på det.
Avatar billede bumle90 Nybegynder
11. december 2004 - 17:17 #5
ahaa..hmmm hvordan kan jeg se hvilken version af oracle det er..Jeg har adgang til alle tabeller..incl system-tabeller
Avatar billede knico Nybegynder
11. december 2004 - 17:31 #6
Jeg er ikke 100% sikker, men tabellen hedder vist V_$VERSION så prøv med selct * from sys.V_$VERSION
Avatar billede bumle90 Nybegynder
11. december 2004 - 17:38 #7
Yepper...det var altså ikke den nyeste :)

Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
PL/SQL Release 8.1.7.4.0 - Production
CORE    8.1.7.0.0    Production
TNS for Linux: Version 8.1.7.4.0 - Production
NLSRTL Version 3.4.1.0.0 - Production
Avatar billede lap Nybegynder
11. december 2004 - 17:39 #8
ok - ingen inner join eller outher joins - skal laves som regulære joins
Avatar billede bumle90 Nybegynder
11. december 2004 - 17:42 #9
Men altså...nu har jeg lavet SQL vha. net query-builder istedet for access...og den har lavet følgende SQL for mig...Som ser ud til at virke:

"SELECT TA_STED.STED_NR, TA_AUTOMAT.AUT_NR, TA_WWW_BESTIL.BESTIL_NR, TA_WWW_BESTIL_AUT.BESTIL_LINIE_NR, TA_STED.STED_NAVN, TA_STED.STED_ADRESSE, TA_AUT_NAVN.AUT_NAVN, TA_AUT_ART.AUT_ART_NAVN, TA_ELKTR.ELKTR_BETEGN, TA_FABR.FABR_BETEGN, TA_KAB.KAB_BETEGN, TA_PROG_VERS.PROG_VERS, TA_WWW_BESTIL.BESTIL_DATO, TA_WWW_BESTIL.OENSKE_DATO, TA_YDELSE.YDELSE_NAVN FROM        TA_WWW_BESTIL, TA_YDELSE, TA_PROG_VERS, TA_FABR, TA_AUT_ART, TA_AUT_NAVN, TA_AUTOMAT, TA_STED, TA_KAB, TA_ELKTR,                      TA_WWW_BESTIL_AUT  WHERE    TA_WWW_BESTIL.BESTIL_NR (+) = TA_WWW_BESTIL_AUT.BESTIL_NR AND TA_YDELSE.YDELSE_NR (+) = TA_WWW_BESTIL_AUT.YDELSE_NR AND                        TA_PROG_VERS.AUT_NAVN_NR = TA_AUT_NAVN.AUT_NAVN_NR AND TA_PROG_VERS.PROG_NR = TA_AUTOMAT.PROG_NR AND                      TA_FABR.FABR_NR = TA_ELKTR.FABR_NR AND TA_AUT_ART.AUT_ART_NR = TA_AUT_NAVN.AUT_ART_NR AND                      TA_AUT_NAVN.AUT_NAVN_NR = TA_AUTOMAT.AUT_NAVN_NR AND TA_AUTOMAT.STED_NR = TA_STED.STED_NR AND                      TA_AUTOMAT.KAB_NR = TA_KAB.KAB_NR AND TA_AUTOMAT.ELKTR_NR = TA_ELKTR.ELKTR_NR AND                      TA_AUTOMAT.AUT_NR = TA_WWW_BESTIL_AUT.AUT_NR (+) ORDER BY TA_STED.STED_NR, TA_AUTOMAT.AUT_NR, TA_WWW_BESTIL.BESTIL_NR, TA_WWW_BESTIL_AUT.BESTIL_LINIE_NR "
Avatar billede bumle90 Nybegynder
11. december 2004 - 17:42 #10
Hvad siger i til den...
Avatar billede knico Nybegynder
11. december 2004 - 17:46 #11
Det ser helt rigtigt ud til versioner lavere end 9.
Avatar billede bumle90 Nybegynder
11. december 2004 - 18:34 #12
Læg et svar som tak for jeres tid :)
Avatar billede bumle90 Nybegynder
11. december 2004 - 18:34 #13
og råd
Avatar billede knico Nybegynder
11. december 2004 - 18:46 #14
Det var så lidt...
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