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

[SOLUCIONADO] Error de conversión al convertir el valor Error de conversión al convertir el valor

Estas en el tema de Error de conversión al convertir el valor Error de conversión al convertir el valor en el foro de SQL Server en Foros del Web. Hola chicos de nuevo: fíjense que ahora estoy modificando un SP que funciona PERFECTAMENTE lo que requiero es convertir la estructura de mi INSERT en ...
  #1 (permalink)  
Antiguo 29/08/2014, 10:21
Avatar de citaem  
Fecha de Ingreso: agosto-2005
Mensajes: 218
Antigüedad: 18 años, 7 meses
Puntos: 0
Error de conversión al convertir el valor Error de conversión al convertir el valor

Hola chicos de nuevo:

fíjense que ahora estoy modificando un SP que funciona PERFECTAMENTE lo que requiero es convertir la estructura de mi INSERT en una cadena y ejecutarla con EXEC esto con la finalidad de manipular su estructura de acuerdo a los parámetros recibidos, al final debe regresarme el SCOPE_IDENTITY que usare en otro insert...

Pero al momento de armar la cadena y correr el SP me manda "Error de conversión al convertir el valor varchar 'aquí pone todo mi insert' al tipo de datos int. " lo que me hace creer que al usar exec no se recupera igual el identtity o estoy concatenando mal mis parámetros.

Podrían revisar mi código (anexo la parte que modifique): las variables que inician con "n" son numéricas y las que inician con "s" son string.
Código SQL:
Ver original
  1. DECLARE @Query AS VARCHAR(MAX)
  2. SET @Query = 'Insert into Dim_Indicador (CvePadreInd,CveMiembInd,MiembroInd,Tipo,Ponderacion,Formula,UnidadMedida,FrecMedicion,IdComportamiento,Validado,Objetivo,AnioActual,'
  3. SET @Query = @Query + 'FuenteInfo,'
  4. SET @Query = @Query + 'IdTipo,IdModoAlim,Descripcion)'
  5. SET @Query = @Query + 'Values ('+CHAR(39)+@NewCvePadreInd+CHAR(39)+','+CHAR(39)+@NewCveMiembInd+CHAR(39)+','+CHAR(39)+@stxtNomIndi+CHAR(39)+','+CHAR(39)+'Indicador'+CHAR(39)+','+@ntxtPondeIndi+','+CHAR(39)+@stxtFormuIndi+CHAR(39)+','+CHAR(39)+@stxtUniMedIndi+CHAR(39)+','+CHAR(39)+@sslcFrecMed+CHAR(39)+','+@nslcComporta+','+@nValidado+','+@nslcObj+','+@AnioAct+','+CHAR(39)+@stxtFuenInfoIndi+CHAR(39)+','+@nslcTipo+','+@nslcModAlimen+','+CHAR(39)+@stxtDescIndi+CHAR(39)+')'
  6.  
  7. EXEC(@Query)
  8.  
  9. SET @LastIdIndiOutPut = (SELECT SCOPE_IDENTITY())

GRACIAS
  #2 (permalink)  
Antiguo 29/08/2014, 10:40
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Error de conversión al convertir el valor Error de conversión al convertir

y los convert a varchar de los tipos numericos??? no puedes concatener como si nada

Código SQL:
Ver original
  1. SELECT 'cadena ' + 1

esto te marcaria error, asi que ocupas un convert(varchar(longitud),variableentera) en todas tus variables numericas
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 29/08/2014, 10:48
Avatar de citaem  
Fecha de Ingreso: agosto-2005
Mensajes: 218
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Error de conversión al convertir el valor Error de conversión al convertir

ok, voy a probarlo y en un momento te comento
  #4 (permalink)  
Antiguo 29/08/2014, 11:11
Avatar de citaem  
Fecha de Ingreso: agosto-2005
Mensajes: 218
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Error de conversión al convertir el valor Error de conversión al convertir

Hola Libras:

Gracias por el apoyo, con la novedad de que se los cambié.... y aun asi me amnda el mismo error
BEGIN
Código SQL:
Ver original
  1. SET NOCOUNT ON;
  2.  
  3. DECLARE @UltimoregistroIndi AS INT = 0
  4. DECLARE @Query AS VARCHAR(MAX)
  5. DECLARE @nValidado AS INT = 0
  6.  
  7. SET @Query = 'Insert into Dim_Indicador (CvePadreInd,CveMiembInd,MiembroInd,Tipo,Ponderacion,Formula,UnidadMedida,FrecMedicion,IdComportamiento,Validado,Objetivo,AnioActual,'
  8. SET @Query = @Query + 'FuenteInfo,'
  9. SET @Query = @Query + 'IdTipo,IdModoAlim,Descripcion)'
  10. SET @Query = @Query + 'Values ('+CHAR(39)+@NewCvePadreInd+CHAR(39)+','+CHAR(39)+@NewCveMiembInd+CHAR(39)+','+CHAR(39)+@stxtNomIndi+CHAR(39)+','+CHAR(39)+'Indicador'+CHAR(39)+','+CONVERT(VARCHAR(100),@ntxtPondeIndi)+','+CHAR(39)+@stxtFormuIndi+CHAR(39)+','+CHAR(39)+@stxtUniMedIndi+CHAR(39)+','+CHAR(39)+@sslcFrecMed+CHAR(39)+','+CONVERT(VARCHAR(10),@nslcComporta)+','+CONVERT(VARCHAR(10),@nValidado)+','+CONVERT(VARCHAR(10),@nslcObj)+','+CONVERT(VARCHAR(10),@AnioAct)+','+CHAR(39)+@stxtFuenInfoIndi+CHAR(39)+','+CONVERT(VARCHAR(10),@nslcTipo)+','+CONVERT(VARCHAR(10),@nslcModAlimen)+','+CHAR(39)+@stxtDescIndi+CHAR(39)+')'
  11.  
  12. EXEC(@Query)
  13.  
  14. SET @LastIdIndiOutPut = (SELECT SCOPE_IDENTITY())
  15.  
  16.  
  17. INSERT INTO TblMetasIndicador (Id_Dim_Indicador, MetaMin, MetaSat, MetaSob, Retadora, Alcanzable, AnioActual,Validado,IdArea)
  18. VALUES (@LastIdIndiOutPut,@ntxtMetMinIndi,@ntxtMetSatIndi,@ntxtMetSobrIndi,@stxtRetadora,@stxtAlcanzable,@AnioAct,@nValidado,@CveArea)
  19.  
  20. SET @UltimoregistroIndi=@LastIdIndiOutPut
  21. SELECT @UltimoregistroIndi AS IdUltimoRegistro
END

Alguna otra sugerencia???? porfa
  #5 (permalink)  
Antiguo 29/08/2014, 11:18
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Error de conversión al convertir el valor Error de conversión al convertir

y si imprimes la variable query??? que te manda???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 29/08/2014, 11:28
Avatar de citaem  
Fecha de Ingreso: agosto-2005
Mensajes: 218
Antigüedad: 18 años, 7 meses
Puntos: 0
Busqueda Respuesta: Error de conversión al convertir el valor Error de conversión al convertir

Ayer intente hacer eso con:

Código SQL:
Ver original
  1. Print @Query
  2.  
  3. -- y bloqueando la ejecución....
  4. --EXEC(@Query)

¿Si se imprime asi no?, y no logre que me arrojara la cadena

  #7 (permalink)  
Antiguo 29/08/2014, 12:07
Avatar de citaem  
Fecha de Ingreso: agosto-2005
Mensajes: 218
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Error de conversión al convertir el valor Error de conversión al convertir

Y logre imprimirla y me trae una cadena PERFECTA que valide en la BD.....


Código SQL:
Ver original
  1. INSERT INTO Dim_Indicador (CvePadreInd,CveMiembInd,MiembroInd,Tipo,Ponderacion,Formula,UnidadMedida,FrecMedicion,IdComportamiento,Validado,Objetivo,AnioActual,FuenteInfo,IdTipo,IdModoAlim,Descripcion)
  2. VALUES('PGRO-8','PGRI-49','nombre','Indicador',10,'1+1+1','kg','Mensual',1,0,4,2013,'jane',3,1,'descripcion')


Pero le modifique "algo" mas al SP
Código SQL:
Ver original
  1. SET @LastIdIndiOutPut = CONVERT(INT,(SELECT SCOPE_IDENTITY()))

converti en int el scope identity, lo que evito que me mande errores pero lo recupera en vacio.....

Yo supongo que es diferente la extracción de un SCOPE_IDENTITY después de un exec

MUCHAS GRACIAS LIBRA, le seguiré buscando, pero la cadena ya quedo.....

Etiquetas: funcion, insert, query, select, valor
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 21:11.