![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Procedimiento almacenado con consultas distintas
Hola, haber si vosotros me resolveís esta duda,
seguro que si ya que siempre lo haceis. Tengo un procedimiento almacenado con varias consultas independientes, es decir, tengo un bloque FOR....DO con un begin end; dentro del dicho begin end + código;., y despues tengo otro bloque FOR DO , con su correspondiente begin end y su codigo; y al final de los 2 bloques un suspend. Lo que pretedo comentaros es que no puedo meter el 2º bloque dentro del primero, porque son consultas que no estan relacionadas. Yo pretendo que de una llamada al procedimiento me saque todos los resultados de una y de ptra consulta. No se si me he explicado con claridad. Os pongo el código a continuacion
El error que me da cuando ejecuto esto es:SQL error code =-313 "count of column list and variable list do not match" ¿Cual sería la solución?¿Será que no lo puedo hacerlo en un sólo procedimiento? Por favor espero su respuesta. Gracias antetodo por su ayuda. Última edición por VRO fecha: 04-08-2005 a las 19:32:50. |
|
#2
|
||||
|
||||
|
El inconveniente es que la cantidad de campos seleccionados supera la cantidad de variables.
si miras el primer bloque For SELECT encuentras que estas seleccionando 13 campos y cuando dices INTO solo tienes 10 variales donde almacenar la informacion. La solucion es tener en la seccion INTO tantas variables como campos seleccionados. En el siguiente ejemplo selecciona tres campos y los guarda en 3 variables. FOR SELECT IDEMPLEADO, EMPLEADO, DIRECCION FROM TBL_EMPLEADOS WHERE IDEMPLEADO = '50935257' INTO :CODIGO, :NOMBRE, OMICILIOEspero haberte servido. Saludos, |
|
#3
|
|||
|
|||
|
Ciertamente he puesto tantos campos que me habís perdido.
Gracias Osorio hallaste mi estupido error. Thankssssssss |
![]() |
|
|
|