Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Error usando EXECUTE IMMEDIATE

Estas en el tema de Error usando EXECUTE IMMEDIATE en el foro de Oracle en Foros del Web. lo que estoy haciendo es construir un select dinamico y despues ejecutarlo con execute immediate pero me sale un error, pongo el codigo: consulta := ...
  #1 (permalink)  
Antiguo 22/04/2008, 10:25
 
Fecha de Ingreso: enero-2008
Mensajes: 7
Antigüedad: 16 años, 9 meses
Puntos: 0
Error usando EXECUTE IMMEDIATE

lo que estoy haciendo es construir un select dinamico y despues ejecutarlo con execute immediate pero me sale un error, pongo el codigo:

consulta := 'Select '''||dia||''', COUNT(*) AS EXPR1 FROM ' ||tabla||' '||unionall;
EXECUTE IMMEDIATE consulta INTO tit,text;

donde dia, tabla, unionall son variables que genero despues de un proceso, y me sale el error "missing SELECT keyword", si ejecuto la consulta sin variables lo hace bien...

espero haberme explicado y que alguien me pueda ayudar pronto..

gracias
  #2 (permalink)  
Antiguo 22/04/2008, 11:47
 
Fecha de Ingreso: enero-2008
Mensajes: 7
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Error usando EXECUTE IMMEDIATE

quedo de la siguiente forma, solo le quite la ultima variable, pongo el codigo:

consulta := 'SELECT'''||dia||''', COUNT(*) AS EXPR1 FROM '|| tabla;

EXECUTE IMMEDIATE consulta INTO tit, text;
  #3 (permalink)  
Antiguo 23/04/2008, 09:25
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
Puntos: 85
Re: Error usando EXECUTE IMMEDIATE

Hola,


Código:
consulta := 'SELECT'''||dia||''', COUNT(*) AS EXPR1 FROM '|| tabla;
¿Te da el resultado esperado?, me cuesta ver una funcion de agregado sin un group by.

Esa consulta y la siguiente deberian tener el mismo resultado

Código:
consulta := 'SELECT COUNT(*) AS EXPR1 FROM '|| tabla;
Saludos
  #4 (permalink)  
Antiguo 23/04/2008, 13:46
 
Fecha de Ingreso: noviembre-2007
Ubicación: Argentina
Mensajes: 134
Antigüedad: 17 años
Puntos: 3
Re: Error usando EXECUTE IMMEDIATE

Coincido plenamente con usted colega Matanga.
__________________
Y venció David al filisteo con honda y piedra; e hirió al filisteo y lo mató, sin tener David espada en su mano.
  #5 (permalink)  
Antiguo 24/04/2008, 12:18
 
Fecha de Ingreso: enero-2008
Mensajes: 7
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Error usando EXECUTE IMMEDIATE

Aunque si me da el resultado esperado, lo que tu planteas Matanga es correcto, ya que al final solo ocupe el campo count(*).

gracias por sus respuestas
  #6 (permalink)  
Antiguo 25/04/2008, 15:15
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 8 meses
Puntos: 7
Re: Error usando EXECUTE IMMEDIATE

no estoy muy seguro, pero me parece que la consulta se resuelve como

SELECT 'dia', count( ......

'dia' lo tomaria como una simple constante y no como un campo de la tabla, es por eso que funciona.
__________________
Blogzote.com :-) Mi blog
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:17.