Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Oracle

Respuesta
 
Herramientas Desplegado
Antiguo 22-abr-2008, 10:25   #1 (permalink)
pato819 ha deshabilitado el karma
 
Fecha de Ingreso: enero-2008
Mensajes: 7
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 está desconectado   Responder Citando
Antiguo 22-abr-2008, 11:47   #2 (permalink)
pato819 ha deshabilitado el karma
 
Fecha de Ingreso: enero-2008
Mensajes: 7
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;
pato819 está desconectado   Responder Citando
Antiguo 23-abr-2008, 09:25   #3 (permalink)
matanga ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2007
Ubicación: Barcelona, España
Mensajes: 529
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
matanga está desconectado   Responder Citando
Antiguo 23-abr-2008, 13:46   #4 (permalink)
MarioHeredia ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2007
Ubicación: Cordoba, Argentina
Mensajes: 82
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.
MarioHeredia está desconectado   Responder Citando
Antiguo 24-abr-2008, 12:18   #5 (permalink)
pato819 ha deshabilitado el karma
 
Fecha de Ingreso: enero-2008
Mensajes: 7
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
pato819 está desconectado   Responder Citando
Antiguo 25-abr-2008, 15:15   #6 (permalink)
kikolice ha deshabilitado el karma
 
Avatar de kikolice
 
Fecha de Ingreso: marzo-2004
Mensajes: 1.118
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
kikolice está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 17:39.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93