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

Procedimientos en Informix

Estas en el tema de Procedimientos en Informix en el foro de Bases de Datos General en Foros del Web. Hola: Tengo este ejemplo de procedemiento: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original CREATE PROCEDURE scopes ( ) DEFINE x , y , z INT ; ...
  #1 (permalink)  
Antiguo 03/09/2012, 09:32
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 10 meses
Puntos: 12
Procedimientos en Informix

Hola:
Tengo este ejemplo de procedemiento:
Código SQL:
Ver original
  1. CREATE PROCEDURE scopes()
  2. DEFINE x,y,z INT;
  3. LET x = 5;
  4. LET y = 10;
  5. LET z = x + y; --z is 15
  6. BEGIN
  7. DEFINE x, q INT;
  8. DEFINE z CHAR(5);
  9. LET x = 100;
  10. LET q = x + y; -- q = 110
  11. LET z = 'silly'; -- z receives a character value
  12. END
  13. LET y = x; -- y is now 5
  14. LET x = z; -- z is now 15, not 'silly'
  15. END PROCEDURE;
me da 12 errores siguientes:
Código SQL:
Ver original
  1. [Error Code: -201, SQL State: 42000]  A syntax error has occurred.
quisiera saber por que?
  #2 (permalink)  
Antiguo 03/09/2012, 12:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Procedimientos en Informix

Mi dominio no es Informix, pero observando tu código me asalta la duda: ¿El END de tu bloque BEGIN/END, no debería llevar el cierre de sentencia (;)?
En el contexto de lo que sigue, parecería que si.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 05/09/2012, 09:26
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 10 meses
Puntos: 12
Respuesta: Procedimientos en Informix

gracias gnzsoloyo. El problema estaba en la ejecucion, uso el dbvisualizer al ejecutar de esa forma nunca ejecutaria el procedimiento, pero incorporando

Código SQL:
Ver original
  1. --/
  2. CREATE PROCEDURE scopes()
  3.     DEFINE x,y,z INT;
  4.     LET x = 5;
  5.     LET y = 10;
  6.     LET z = x + y; --z is 15
  7.     BEGIN
  8.     DEFINE x, q INT;
  9.     DEFINE z CHAR(5);
  10.     LET x = 100;
  11.     LET q = x + y; -- q = 110
  12.     LET z = 'silly'; -- z receives a character value
  13.     END
  14.     LET y = x; -- y is now 5
  15.     LET x = z; -- z is now 15, not 'silly'
  16.     END PROCEDURE;
  17. /

Si ejecutaria, la otra forma de ejecutar es guardandolo en formato sql ingresar a la BD de informix y ejecutarlo desde alli.

Etiquetas: informix, procedimientos
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 09:07.