Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rafael Mitsunaka

Cursor retorna apenas uma linha

Recommended Posts

Pessoal, não sou muito bom em cursores, e tenho que fazer um para poder tratar cada item que existe na minha tabela @TT_ITENS_DT,

 

porém meu cursor só ta trazendo o primeiro registro e nesse caso, tenho 4 dentro da tabela, onde eu estou errando?

 

Obrigado.

declare @cd_origem_dt	smallint,
			@cd_destino_dt smallint,
			@cd_produto char(13),
			@qt_pedido	int,
			@message varchar(80)
	

	declare item_cursor cursor
		for select cd_origem_dt, cd_destino_dt, cd_produto, qt_pedido from @TT_ITENS_DT
	open item_cursor
	
	fetch next from item_cursor
	into @cd_origem_dt, @cd_destino_dt, @cd_produto, @qt_pedido
	
	select @cd_origem_dt, @cd_destino_dt, @cd_produto, @qt_pedido
		

	close item_cursor
	deallocate item_cursor;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi assim:


	--–1. Declara CURSOR (DECLARE)
	declare item_cursor cursor
		for select cd_origem_dt, cd_destino_dt, cd_produto, qt_pedido from @TT_ITENS_DT
	--–2. Abre o CURSOR (OPEN)
	open item_cursor
	--–3. Alimenta variáveis com os dados do CURSOR (FETCH)
	declare @cd_origem_dt	smallint,
			@cd_destino_dt smallint,
			@cd_produto char(13),
			@qt_pedido	int
	fetch next from item_cursor	into @cd_origem_dt, @cd_destino_dt, @cd_produto, @qt_pedido
	
	WHILE @@FETCH_STATUS = 0
	begin				
		insert into #tmpRetItemSaldo exec sgf_rec.dbo.p_mrec_consistir_saldo_dev_produto @cd_destino_dt,@cd_origem_dt,@cd_produto,@qt_pedido
		
		-- Pega proximo item do loop
		fetch next from item_cursor	into @cd_origem_dt, @cd_destino_dt, @cd_produto, @qt_pedido

	end
	
	--–4. Fecha e desaloca o CURSOR (CLOSE e DEALLOCATE)
	close item_cursor
	deallocate item_cursor;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.