Miguel

26/10/2007 - 17:08 por Miguel | Informe spam
Hola a todos, tengo una consulta sobre cursores.

El caso es:
- Tengo una tabla con un unico campo que es un varchar(400)
- Creo un Cursor con los datos de esta Tabla
- Recorro el cursor y tomo el campo como variable
- Ejecuto un SP dentro de las sentencias BEGIN..END

El caso es que en el SP que ejecuto realizo un INSERT a otra tabla con los
datos de la cadena, pero dentro del cursor no funciona e inserta solo valores
nulos. Pero si usao el SP en el Analizador de Consultas si lo realiza
normalmente.
Adjunto el codigo para mayor detalle.



DECLARE @cadena varchar(400)

DECLARE cur_rcc CURSOR GLOBAL FOR

SELECT cadena FROM texto

OPEN cur_rcc

FETCH NEXT FROM cur_rcc

INTO @cadena



WHILE @@FETCH_STATUS = 0

BEGIN



|001|10000|00000|00000|00000|00000|RAMIREZ|SINARAHUA||MARIELITH|JOSE'

EXECUTE SP_02 @cadena



FETCH NEXT FROM cur_rcc

INTO @cadena

END



CLOSE cur_rcc

DEALLOCATE cur_rcc



Si ejecuto EXECUTE SP_02 cadenatexto Si lo ejecuta pero no dentro del cursor

Preguntas similare

Leer las respuestas

#1 jeastman - Hotmail
26/10/2007 - 17:23 | Informe spam
Hola Miguel...

Te sugiero que pongas un "print @cadena" justo antes de llamar el SP para
ver el contenido de la variable, aparentemente no existe ingún problema.

Una vez que hagas la prueba nos comentas para ver en que te podemos ayudar.

También revisa el tipo de datos del parámetro dentro del cursor.

y por último te sugiero que revises el contenido de la tabla donde están las
cadenas para estár seguro que no tienes valores nulos

select cadena from text where cadena is null

si éste te regresa algún registro, empieza por ahi.


Saludos.

"Miguel" escribió en el mensaje
news:
Hola a todos, tengo una consulta sobre cursores.

El caso es:
- Tengo una tabla con un unico campo que es un varchar(400)
- Creo un Cursor con los datos de esta Tabla
- Recorro el cursor y tomo el campo como variable
- Ejecuto un SP dentro de las sentencias BEGIN..END

El caso es que en el SP que ejecuto realizo un INSERT a otra tabla con los
datos de la cadena, pero dentro del cursor no funciona e inserta solo
valores
nulos. Pero si usao el SP en el Analizador de Consultas si lo realiza
normalmente.
Adjunto el codigo para mayor detalle.



DECLARE @cadena varchar(400)

DECLARE cur_rcc CURSOR GLOBAL FOR

SELECT cadena FROM texto

OPEN cur_rcc

FETCH NEXT FROM cur_rcc

INTO @cadena



WHILE @@FETCH_STATUS = 0

BEGIN



|001|10000|00000|00000|00000|00000|RAMIREZ|SINARAHUA||MARIELITH|JOSE'

EXECUTE SP_02 @cadena



FETCH NEXT FROM cur_rcc

INTO @cadena

END



CLOSE cur_rcc

DEALLOCATE cur_rcc



Si ejecuto EXECUTE SP_02 cadenatexto Si lo ejecuta pero no dentro del
cursor

Respuesta Responder a este mensaje
#2 Miguel
26/10/2007 - 17:35 | Informe spam
He puesto el PRINT cadena antes del EXEC SP y si me muestra la Cadena
pero al final no lo realiza.

la tabla no tiene valores Nulos

"jeastman - Hotmail" wrote:

Hola Miguel...

Te sugiero que pongas un "print @cadena" justo antes de llamar el SP para
ver el contenido de la variable, aparentemente no existe ingún problema.

Una vez que hagas la prueba nos comentas para ver en que te podemos ayudar.

También revisa el tipo de datos del parámetro dentro del cursor.

y por último te sugiero que revises el contenido de la tabla donde están las
cadenas para estár seguro que no tienes valores nulos

select cadena from text where cadena is null

si éste te regresa algún registro, empieza por ahi.


Saludos.

"Miguel" escribió en el mensaje
news:
> Hola a todos, tengo una consulta sobre cursores.
>
> El caso es:
> - Tengo una tabla con un unico campo que es un varchar(400)
> - Creo un Cursor con los datos de esta Tabla
> - Recorro el cursor y tomo el campo como variable
> - Ejecuto un SP dentro de las sentencias BEGIN..END
>
> El caso es que en el SP que ejecuto realizo un INSERT a otra tabla con los
> datos de la cadena, pero dentro del cursor no funciona e inserta solo
> valores
> nulos. Pero si usao el SP en el Analizador de Consultas si lo realiza
> normalmente.
> Adjunto el codigo para mayor detalle.
>
>
>
> DECLARE @cadena varchar(400)
>
> DECLARE cur_rcc CURSOR GLOBAL FOR
>
> SELECT cadena FROM texto
>
> OPEN cur_rcc
>
> FETCH NEXT FROM cur_rcc
>
> INTO @cadena
>
>
>
> WHILE @@FETCH_STATUS = 0
>
> BEGIN
>
>
>
> |001|10000|00000|00000|00000|00000|RAMIREZ|SINARAHUA||MARIELITH|JOSE'
>
> EXECUTE SP_02 @cadena
>
>
>
> FETCH NEXT FROM cur_rcc
>
> INTO @cadena
>
> END
>
>
>
> CLOSE cur_rcc
>
> DEALLOCATE cur_rcc
>
>
>
> Si ejecuto EXECUTE SP_02 cadenatexto Si lo ejecuta pero no dentro del
> cursor
>



Respuesta Responder a este mensaje
#3 jeastman - Hotmail
26/10/2007 - 17:40 | Informe spam
Sino es demaciado pedirte, pasar el sp que se está llamando, y si puedes la
tabla texto con sus datos para hacer la prueba.

Saludos

"Miguel" escribió en el mensaje
news:
He puesto el PRINT cadena antes del EXEC SP y si me muestra la Cadena
pero al final no lo realiza.

la tabla no tiene valores Nulos

"jeastman - Hotmail" wrote:

Hola Miguel...

Te sugiero que pongas un "print @cadena" justo antes de llamar el SP para
ver el contenido de la variable, aparentemente no existe ingún problema.

Una vez que hagas la prueba nos comentas para ver en que te podemos
ayudar.

También revisa el tipo de datos del parámetro dentro del cursor.

y por último te sugiero que revises el contenido de la tabla donde están
las
cadenas para estár seguro que no tienes valores nulos

select cadena from text where cadena is null

si éste te regresa algún registro, empieza por ahi.


Saludos.

"Miguel" escribió en el mensaje
news:
> Hola a todos, tengo una consulta sobre cursores.
>
> El caso es:
> - Tengo una tabla con un unico campo que es un varchar(400)
> - Creo un Cursor con los datos de esta Tabla
> - Recorro el cursor y tomo el campo como variable
> - Ejecuto un SP dentro de las sentencias BEGIN..END
>
> El caso es que en el SP que ejecuto realizo un INSERT a otra tabla con
> los
> datos de la cadena, pero dentro del cursor no funciona e inserta solo
> valores
> nulos. Pero si usao el SP en el Analizador de Consultas si lo realiza
> normalmente.
> Adjunto el codigo para mayor detalle.
>
>
>
> DECLARE @cadena varchar(400)
>
> DECLARE cur_rcc CURSOR GLOBAL FOR
>
> SELECT cadena FROM texto
>
> OPEN cur_rcc
>
> FETCH NEXT FROM cur_rcc
>
> INTO @cadena
>
>
>
> WHILE @@FETCH_STATUS = 0
>
> BEGIN
>
>
>
> ||1|40513530|1|
> |001|10000|00000|00000|00000|00000|RAMIREZ|SINARAHUA||MARIELITH|JOSE'
>
> EXECUTE SP_02 @cadena
>
>
>
> FETCH NEXT FROM cur_rcc
>
> INTO @cadena
>
> END
>
>
>
> CLOSE cur_rcc
>
> DEALLOCATE cur_rcc
>
>
>
> Si ejecuto EXECUTE SP_02 cadenatexto Si lo ejecuta pero no dentro del
> cursor
>



Respuesta Responder a este mensaje
#4 Alejandro Mesa
26/10/2007 - 17:48 | Informe spam
Hila Miguel,

Por que usas un cursor, si solo estas selccionando una unica fila al asar?

Chequea la definicion de tu cursor.

> > DECLARE cur_rcc CURSOR GLOBAL FOR
> >
> > SELECT cadena FROM texto



Si la tabla [texto] tiene mas de una fila, entonces estas seleccionado solo
el valor de la columna de una unica fila al asar.

Ejemplo:

declare @t table (c1 int not null identity)

insert into @t default values
insert into @t default values
insert into @t default values

declare @i int

select @i = c1 from @t

select @i
go


AMB

"Miguel" wrote:

He puesto el PRINT cadena antes del EXEC SP y si me muestra la Cadena
pero al final no lo realiza.

la tabla no tiene valores Nulos

"jeastman - Hotmail" wrote:

> Hola Miguel...
>
> Te sugiero que pongas un "print @cadena" justo antes de llamar el SP para
> ver el contenido de la variable, aparentemente no existe ingún problema.
>
> Una vez que hagas la prueba nos comentas para ver en que te podemos ayudar.
>
> También revisa el tipo de datos del parámetro dentro del cursor.
>
> y por último te sugiero que revises el contenido de la tabla donde están las
> cadenas para estár seguro que no tienes valores nulos
>
> select cadena from text where cadena is null
>
> si éste te regresa algún registro, empieza por ahi.
>
>
> Saludos.
>
> "Miguel" escribió en el mensaje
> news:
> > Hola a todos, tengo una consulta sobre cursores.
> >
> > El caso es:
> > - Tengo una tabla con un unico campo que es un varchar(400)
> > - Creo un Cursor con los datos de esta Tabla
> > - Recorro el cursor y tomo el campo como variable
> > - Ejecuto un SP dentro de las sentencias BEGIN..END
> >
> > El caso es que en el SP que ejecuto realizo un INSERT a otra tabla con los
> > datos de la cadena, pero dentro del cursor no funciona e inserta solo
> > valores
> > nulos. Pero si usao el SP en el Analizador de Consultas si lo realiza
> > normalmente.
> > Adjunto el codigo para mayor detalle.
> >
> >
> >
> > DECLARE @cadena varchar(400)
> >
> > DECLARE cur_rcc CURSOR GLOBAL FOR
> >
> > SELECT cadena FROM texto
> >
> > OPEN cur_rcc
> >
> > FETCH NEXT FROM cur_rcc
> >
> > INTO @cadena
> >
> >
> >
> > WHILE @@FETCH_STATUS = 0
> >
> > BEGIN
> >
> >
> >
> > |001|10000|00000|00000|00000|00000|RAMIREZ|SINARAHUA||MARIELITH|JOSE'
> >
> > EXECUTE SP_02 @cadena
> >
> >
> >
> > FETCH NEXT FROM cur_rcc
> >
> > INTO @cadena
> >
> > END
> >
> >
> >
> > CLOSE cur_rcc
> >
> > DEALLOCATE cur_rcc
> >
> >
> >
> > Si ejecuto EXECUTE SP_02 cadenatexto Si lo ejecuta pero no dentro del
> > cursor
> >
>
>
>
Respuesta Responder a este mensaje
#5 Alejandro Mesa
26/10/2007 - 17:51 | Informe spam
Que burrada la mia, para eso son los cursores, para recorrer de una en una
cada fila del resultado.

AMB

"Alejandro Mesa" wrote:

Hila Miguel,

Por que usas un cursor, si solo estas selccionando una unica fila al asar?

Chequea la definicion de tu cursor.

> > > DECLARE cur_rcc CURSOR GLOBAL FOR
> > >
> > > SELECT cadena FROM texto

Si la tabla [texto] tiene mas de una fila, entonces estas seleccionado solo
el valor de la columna de una unica fila al asar.

Ejemplo:

declare @t table (c1 int not null identity)

insert into @t default values
insert into @t default values
insert into @t default values

declare @i int

select @i = c1 from @t

select @i
go


AMB

"Miguel" wrote:

> He puesto el PRINT cadena antes del EXEC SP y si me muestra la Cadena
> pero al final no lo realiza.
>
> la tabla no tiene valores Nulos
>
> "jeastman - Hotmail" wrote:
>
> > Hola Miguel...
> >
> > Te sugiero que pongas un "print @cadena" justo antes de llamar el SP para
> > ver el contenido de la variable, aparentemente no existe ingún problema.
> >
> > Una vez que hagas la prueba nos comentas para ver en que te podemos ayudar.
> >
> > También revisa el tipo de datos del parámetro dentro del cursor.
> >
> > y por último te sugiero que revises el contenido de la tabla donde están las
> > cadenas para estár seguro que no tienes valores nulos
> >
> > select cadena from text where cadena is null
> >
> > si éste te regresa algún registro, empieza por ahi.
> >
> >
> > Saludos.
> >
> > "Miguel" escribió en el mensaje
> > news:
> > > Hola a todos, tengo una consulta sobre cursores.
> > >
> > > El caso es:
> > > - Tengo una tabla con un unico campo que es un varchar(400)
> > > - Creo un Cursor con los datos de esta Tabla
> > > - Recorro el cursor y tomo el campo como variable
> > > - Ejecuto un SP dentro de las sentencias BEGIN..END
> > >
> > > El caso es que en el SP que ejecuto realizo un INSERT a otra tabla con los
> > > datos de la cadena, pero dentro del cursor no funciona e inserta solo
> > > valores
> > > nulos. Pero si usao el SP en el Analizador de Consultas si lo realiza
> > > normalmente.
> > > Adjunto el codigo para mayor detalle.
> > >
> > >
> > >
> > > DECLARE @cadena varchar(400)
> > >
> > > DECLARE cur_rcc CURSOR GLOBAL FOR
> > >
> > > SELECT cadena FROM texto
> > >
> > > OPEN cur_rcc
> > >
> > > FETCH NEXT FROM cur_rcc
> > >
> > > INTO @cadena
> > >
> > >
> > >
> > > WHILE @@FETCH_STATUS = 0
> > >
> > > BEGIN
> > >
> > >
> > >
> > > |001|10000|00000|00000|00000|00000|RAMIREZ|SINARAHUA||MARIELITH|JOSE'
> > >
> > > EXECUTE SP_02 @cadena
> > >
> > >
> > >
> > > FETCH NEXT FROM cur_rcc
> > >
> > > INTO @cadena
> > >
> > > END
> > >
> > >
> > >
> > > CLOSE cur_rcc
> > >
> > > DEALLOCATE cur_rcc
> > >
> > >
> > >
> > > Si ejecuto EXECUTE SP_02 cadenatexto Si lo ejecuta pero no dentro del
> > > cursor
> > >
> >
> >
> >
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida