Avatar billede horsmark Nybegynder
26. marts 2002 - 19:48 Der er 3 kommentarer og
1 løsning

SQL: SELECT KEYWORD ?

Jeg får fejlen imod min Oracledb hvilken jeg kalder via asp:

Microsoft OLE DB Provider for ODBC Drivers fejl '80004005'

[Oracle][ODBC][Ora]ORA-00928: missing SELECT keyword

pga følgende SQL - hvad er galt

strSQL = "SELECT VANTAGE.SPI_CAMP_PROC.CAMP_ID, VANTAGE.CAMPAIGN.CAMP_NAME, VANTAGE.SPI_MASTER.NEXT_RUN_DATE, VANTAGE.SPI_MASTER.NEXT_RUN_TIME, VANTAGE.STATUS_SETTING.STATUS_NAME
FROM ((VANTAGE.SPI_CAMP_PROC INNER JOIN VANTAGE.SPI_MASTER ON VANTAGE.SPI_CAMP_PROC.SPI_ID = VANTAGE.SPI_MASTER.SPI_ID) INNER JOIN VANTAGE.CAMPAIGN ON VANTAGE.SPI_CAMP_PROC.CAMP_ID = VANTAGE.CAMPAIGN.CAMP_ID) INNER JOIN VANTAGE.STATUS_SETTING ON VANTAGE.SPI_CAMP_PROC.STATUS_SETTING_ID = VANTAGE.STATUS_SETTING.STATUS_SETTING_ID
GROUP BY VANTAGE.SPI_CAMP_PROC.CAMP_ID, VANTAGE.CAMPAIGN.CAMP_NAME, VANTAGE.SPI_MASTER.NEXT_RUN_DATE, VANTAGE.SPI_MASTER.NEXT_RUN_TIME, VANTAGE.STATUS_SETTING.STATUS_NAME
HAVING (((VANTAGE.STATUS_SETTING.STATUS_NAME)='Queued'))
ORDER BY VANTAGE.SPI_MASTER.NEXT_RUN_DATE"
Avatar billede bernhof Nybegynder
26. marts 2002 - 21:04 #1
hehe.. den er grum den der! :)
Avatar billede coltau Juniormester
26. marts 2002 - 22:05 #2
Husk nu at skrive dokumentation til den sætning.

Spøg til side. Jeg har gennemgået sætningen for syntax-fejl og den er "snore-lige."

udskrevet således er den mere overskuelig.

SELECT VANTAGE.SPI_CAMP_PROC.CAMP_ID,
      VANTAGE.CAMPAIGN.CAMP_NAME,
      VANTAGE.SPI_MASTER.NEXT_RUN_DATE,
      VANTAGE.SPI_MASTER.NEXT_RUN_TIME,
      VANTAGE.STATUS_SETTING.STATUS_NAME
FROM (
      (VANTAGE.SPI_CAMP_PROC
  INNER JOIN
    VANTAGE.SPI_MASTER ON 
      VANTAGE.SPI_CAMP_PROC.SPI_ID = VANTAGE.SPI_MASTER.SPI_ID)
  INNER JOIN
    VANTAGE.CAMPAIGN ON
      VANTAGE.SPI_CAMP_PROC.CAMP_ID = VANTAGE.CAMPAIGN.CAMP_ID)
  INNER JOIN
    VANTAGE.STATUS_SETTING ON
      VANTAGE.SPI_CAMP_PROC.STATUS_SETTING_ID = VANTAGE.STATUS_SETTING.STATUS_SETTING_ID
GROUP BY VANTAGE.SPI_CAMP_PROC.CAMP_ID,
        VANTAGE.CAMPAIGN.CAMP_NAME,
        VANTAGE.SPI_MASTER.NEXT_RUN_DATE,
        VANTAGE.SPI_MASTER.NEXT_RUN_TIME,
        VANTAGE.STATUS_SETTING.STATUS_NAME
HAVING (((VANTAGE.STATUS_SETTING.STATUS_NAME) = 'Queued'))
ORDER BY VANTAGE.SPI_MASTER.NEXT_RUN_DATE"

Samtidig har jeg testet en lignende sætning med samtlige grunddele og den brokker sig ikke på en Access.
Det eneste jeg kan komme i tanke om er at der måske skal stå: SELECT DISTINCT - men det mener jeg ikke at Oracle stiller krav om.

Sorry.
Avatar billede horsmark Nybegynder
26. marts 2002 - 22:06 #3
pis ! Den virker i Access *ARGH* ...takker for at du gad kigge på det alligevel
Avatar billede horsmark Nybegynder
04. april 2002 - 13:56 #4
og løsningen blev...

strSQL =_
"SELECT " &_
  "VANTAGE.SPI_CAMP_PROC.CAMP_ID, " &_
  "VANTAGE.CAMPAIGN.CAMP_NAME, " &_
  "VANTAGE.SPI_MASTER.NEXT_RUN_DATE, " &_
  "VANTAGE.SPI_MASTER.NEXT_RUN_TIME, " &_
  "VANTAGE.STATUS_SETTING.STATUS_NAME, " &_
  "VANTAGE.CAMP_STATUS.STATUS_NAME AS KAMP_STATUS " &_
"FROM " &_
  "VANTAGE.SPI_CAMP_PROC, " &_
  "VANTAGE.CAMPAIGN, " &_
  "VANTAGE.SPI_MASTER, " &_
  "VANTAGE.STATUS_SETTING, " &_
  "VANTAGE.CAMP_STATUS " &_
"WHERE " &_                 
  "VANTAGE.SPI_CAMP_PROC.SPI_ID = VANTAGE.SPI_MASTER.SPI_ID AND " &_
  "VANTAGE.SPI_CAMP_PROC.CAMP_ID = VANTAGE.CAMPAIGN.CAMP_ID AND " &_
  "VANTAGE.SPI_CAMP_PROC.STATUS_SETTING_ID = VANTAGE.STATUS_SETTING.STATUS_SETTING_ID AND " &_
  "VANTAGE.CAMPAIGN.CAMP_ID = VANTAGE.CAMP_STATUS.CAMP_ID AND " &_
  "VANTAGE.STATUS_SETTING.STATUS_NAME = 'Queued' " &_
"GROUP BY " &_
  "VANTAGE.SPI_CAMP_PROC.CAMP_ID, " &_
  "VANTAGE.CAMPAIGN.CAMP_NAME, " &_
  "VANTAGE.SPI_MASTER.NEXT_RUN_DATE, " &_
  "VANTAGE.SPI_MASTER.NEXT_RUN_TIME, " &_
  "VANTAGE.STATUS_SETTING.STATUS_NAME, " &_
  "VANTAGE.CAMP_STATUS.STATUS_NAME " &_
"ORDER BY " & sortTab &  " " & sortTabDirection & ", VANTAGE.SPI_MASTER.NEXT_RUN_DATE"

jeg har bygget sortering ved tryk på kollonne derfor ORDER BY

Case closed
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
Kurser inden for grundlæggende programmering

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