Ver Mensaje Individual
  #12 (permalink)  
Antiguo 18/06/2003, 11:22
Avatar de Jorge_Mota
Jorge_Mota
 
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 22 años, 1 mes
Puntos: 11
ya vi cual es tu problema
el problema viene dado, por varias razones.
uno, al hacer Select @cComando='Insert into...'tienes

VALUES('+ CAST(@Fechach AS CHAR)+','+CAST(@Numeroch AS CHAR)+','+@Expte+','+@Decreto+','+@Coddecr+','+@Co
destab+','+@Importe+','+@Partida+','+@Jurisdicc+',
'+@Mes+','+@Anio+','+@Estado+','+@Institu+')

lo cual queda como
Values(01/01/2002,ss,.... etc
y para que funcione debes encerrar entre '' los valores
el problema es que en SQL el ' es para abrir cadena y cerrar, como
metemos una ' dentro de una cadena ?

aca va la solucion

Set Quoted_Identifier off
ponlo al inicio del SP, esto le indica a SQL que el texto que encierres entre " " (comillas dobles) es una cadena, de lo contrario dara error.

asi que a cambiar lo siguiente:
agregar al inico
Set Quoted_Identifier off
define @Fechach
lo tienes como char y por eso solo te toma un caracter
Ponlo Asi:
DECLARE @Fechach CHAR(20)

el primer Select @cComando queda Asi:
SELECT @cComando = "IF NOT EXISTS (SELECT * FROM " + @TempTable + "WHERE CODESTAB ='" + @Codestab+ "') BEGIN "+
"INSERT INTO "+@TempTable+" (Fechach,Numeroch,Expte,Decreto,Coddecr,Codestab,I mporte,Partida,Jurisdicc,Mes,Anio,Estado,Institu) VALUES('"+ CAST(@Fechach AS nvarchar)+"','"+CAST(@Numeroch AS CHAR)+"','"+@Expte+"','"+@Decreto+"','"+@Coddecr+" ','"+@Codestab+"','"+@Importe+"','"+@Partida+"','" +@Jurisdicc+"','"+@Mes+"','"+@Anio+"','"+@Estado+" ','"+@Institu+"') SELECT * FROM "+@TempTable+ " END ELSE BEGIN SELECT * FROM "+@TempTable+" END"

el segundo asi:
SELECT @cComando = "INSERT INTO "+@TempTable+" (Fechach,Numeroch,Expte,Decreto,Coddecr,Codestab,I mporte,Partida,Jurisdicc,Mes,Anio,Estado,Institu) VALUES('"+@Fechach+"','"+@Numeroch+"','"+@Expte+"' ,'"+@Decreto+"','"+@Coddecr+"','"+@Codestab+"','"+ @Importe+"','"+@Partida+"','"+@Jurisdicc+"','"+@Me s+"','"+@Anio+"','"+@Estado+"','"+@Institu+"') SELECT * FROM "+@TempTable

(estos son los del insert, los del create table estan bien)

Saludos.
__________________
Jorge Mota
Blog
Gubiz estafa

Última edición por Jorge_Mota; 18/06/2003 a las 11:26