No puedo ejecutar una consulta SQL con un con la cláusula a través de ADODB y Oracle.¿Por qué no puedo hacer un "con x como (...)" con ADODB y Oracle?
Es decir, el siguiente fragmento de las obras:
Dim cn As ADODB.connection
Set cn = ....
Dim rs As ADODB.recordSet
Set rs = New ADODB.Recordset
rs.Open "select 'foo' x from dual", cn
Do While Not rs.eof
...
rs.MoveNext
Loop
Sin embargo, el siguiente no funciona - es un error de genererats en tiempo de ejecución 3704: La operación no está permitida si el objeto está cerrado.
Dim cn As ADODB.connection
Set cn = ....
Dim rs As ADODB.recordSet
Set rs = New ADODB.Recordset
rs.Open "with w as (select 'foo' x from dual) select x from w", cn
Do While Not rs.eof
...
rs.MoveNext
Loop
Obviamente, esto es una demostración recortado hacia abajo del verdadero problema que consiste de una consulta más sofisticado.
Me parece que el tipo ADODB analiza la consulta antes de pasarla a la instancia de Oracle y no comprende el con la cláusula. De todos modos, cualquier ayuda sobre esto es altamente apreciada.
Ohhhhhhhhhhhhhhh hombre que me va a Parada ¡mucho trabajo! Escribo muchas consultas de Oracle en ADODB y he evitado usar el estado WITH. Esto proporcionará mucha más claridad. Yo votaría esto cien veces si pudiera. –
No sé qué decir. Esto es tan estúpido por parte de MS. una WTF seria. – RAY
Gracias por esta respuesta, realmente me ayudó. – tuj