Script SQL

24/07/2006

0

Olá,

Estou precisando urgente rodar o script abaixo, mas ele está dando erro e não executa corretamente. Se alguém puder me ajudar eu agradeço.
Obrigado

Rogério

Segue o script

CREATE TABLE dados
( ID numeric(10),
DESCRICAO VARCHAR(30),
META numeric(10,2),
SENTENCA VARCHAR(1000),
RESULTADO numeric(10,2)
)

INSERT INTO dados VALUES( 1, ´Meta Fat.Junho´, 10000, ´Select sum(osequant) from oset00´,0);
INSERT INTO dados VALUES( 2, ´CP para 2006´, 1000000, ´Select sum(osetotal) from oset00´,0);

Create Table #Resultados (Resultado Numeric(10,2))

Declare @Start Int
Declare @End Int
Declare @Retorno Numeric(10,2)
Declare @TSql Varchar(1000)
Declare @Loop Table (Idx int identity(1,1), [ID] Numeric(10), Sentenca Varchar(1000))

Insert into @Loop (sentenca, [ID] ) Select Sentenca, [ID] From dados

select @start = 1, @end = Max(idx) from @loop

While @Start <= @End
Begin
Select @TSql = sentenca From @Loop where idx = @Start
exec sp_executesql @TSql, N´@Retorno Numeric(10,2) OUTPUT´, @Retorno OUTPUT
Update Dados Set resultado = @Retorno
From Dados Inner join @Loop Lp On Lp.ID = Dados.ID And Lp.idx = @Start
Set @Start = @Start + 1
End

[color=red:ca9141667f]Resultado:
(1 row(s) affected)
(1 row(s) affected)
(2 row(s) affected)

Server: Msg 214, Level 16, State 2, Procedure sp_executesql, Line 28
Procedure expects parameter ´@statement´ of type ´ntext/nchar/nvarchar´.[/color:ca9141667f]


Rogerpm

Rogerpm

Responder

Posts

25/07/2006

Psergio.p

Caro amigo, na definiçâo da variavel @Tsql você deve colocar como NVARCHAR


Responder

25/07/2006

Rogerpm

Fiz como você disse coloquei o @TSql como NVARCHAR. O script roda, mas não atualiza o dado do campo retorno. O que mais eu poderia estar fazendo de errado? Obrigado


Responder

25/07/2006

Psergio.p

INSERT INTO dados VALUES( 1, ´Meta Fat.Junho´, 10000, ´Select sum(osequant) from oset00´,0);
INSERT INTO dados VALUES( 2, ´CP para 2006´, 1000000, ´Select sum(osetotal) from oset00´,0);


Altere as linhas acima para

INSERT INTO dados VALUES( 1, ´Meta Fat.Junho´, 10000, ´Select @Retorno = sum(osequant) from oset00´,0);
INSERT INTO dados VALUES( 2, ´CP para 2006´, 1000000, ´Select @Retorno = sum(osetotal) from oset00´,0);


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar