Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Oracle (http://www.forosdelweb.com/f100/)
-   -   Error usando EXECUTE IMMEDIATE (http://www.forosdelweb.com/f100/error-usando-execute-immediate-578739/)

pato819 22/04/2008 10:25

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

pato819 22/04/2008 11:47

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;

matanga 23/04/2008 09:25

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

MarioHeredia 23/04/2008 13:46

Re: Error usando EXECUTE IMMEDIATE
 
Coincido plenamente con usted colega Matanga.

pato819 24/04/2008 12:18

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

kikolice 25/04/2008 15:15

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.


La zona horaria es GMT -6. Ahora son las 18:09.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.