29. september 2007 - 17:31Der er
7 kommentarer og 1 løsning
Select med flere betingelser - Oracle - ASP.
Jeg har følgende SQL-forespørgelse til en Oracle DB vha. ASP. Den virker sådan set også fint (det går hurtigt).
strSQL = "SELECT * FROM FEM_MIN WHERE TIMESTAMP BETWEEN '2007-08-01 01:00:00' AND '2007-08-01 01:10:00' AND STI1='OMRAADE' AND STI2='DELOMRAADE' ORDER BY TIMESTAMP"
Tilføjer jeg en betingelse til; til forespørgelsen, ja så sker der absolut intet og IIS laver en timeout. F.eks:
strSQL = "SELECT * FROM FEM_MIN WHERE TIMESTAMP BETWEEN '2007-08-01 01:00:00' AND '2007-08-01 01:10:00' AND STI1='OMRAADE' AND STI2='DELOMRAADE' STI3='HUSKI' ORDER BY TIMESTAMP"
Fjernes en af betingelserne igen, ja så virker det fint. En der kan forklare det, og hvordan man får flere betingelser på uden IIS "timer ud"?
Der skulle lige et AND med, men det er ikke det der er problemet...
strSQL = "SELECT * FROM FEM_MIN WHERE TIMESTAMP BETWEEN '2007-08-01 01:00:00' AND '2007-08-01 01:10:00' AND STI1='OMRAADE' AND STI2='DELOMRAADE' AND STI3='HUSKI' ORDER BY TIMESTAMP"
<% Set con = Server.CreateObject("ADODB.Connection") con.Open "Driver={Microsoft ODBC for Oracle};Server=XXXXX;Uid=xxxxx;Pwd=xxxxxx;" con.Execute "ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'" strSQL = "SELECT * FROM FEM_MIN WHERE TIMESTAMP BETWEEN '2007-08-01 01:00:00' AND '2007-08-01 01:10:00' AND PATH1='OMRAADE' AND PATH2='KC00' ORDER BY TIMESTAMP" Set rs = con.Execute(strSQL)
Set con = Server.CreateObject("ADODB.Connection") con.Open "Driver={Microsoft ODBC for Oracle};Server=XXXXX;Uid=xxxxx;Pwd=xxxxxx;" con.Execute "ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'" strSQL = "SELECT * FROM FEM_MIN WHERE TIMESTAMP BETWEEN '2007-08-01 01:00:00' AND '2007-08-01 01:10:00' AND PATH1='OMRAADE' AND PATH2='KC00' AND PATH3='FCKC00' ORDER BY TIMESTAMP" Set rs = con.Execute(strSQL)
Forstår det simpelthen ikke, går lyn hurtigt med at hente firespørgelsen i første tilfælde, men tilføjes den ekstra betingelse, ja så timer den ud.
Sletter jeg f.eks en af betingelserne, det er ligemeget hvilken af dem, ja så virker den igen (ingen timeout). F.eks:
<%
Set con = Server.CreateObject("ADODB.Connection") con.Open "Driver={Microsoft ODBC for Oracle};Server=XXXXX;Uid=xxxxx;Pwd=xxxxxx;" con.Execute "ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'" strSQL = "SELECT * FROM FEM_MIN WHERE TIMESTAMP BETWEEN '2007-08-01 01:00:00' AND '2007-08-01 01:10:00' AND PATH2='KC00' AND PATH3='FCKC00' ORDER BY TIMESTAMP" Set rs = con.Execute(strSQL)
Hmm mærkeligt, hvis jeg prøver at importer eksterne data vha. excel fra samme Oracle DB, sker akkurat det samme. Bortset fra at excel "fryser" (Programmet svare ikke).
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.