Ir para conteúdo

Arquivado

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

Rafael Mitsunaka

Insert do Retorno de Procedure em Table Type

Recommended Posts

Pessoal, tenho a seguinte Table Type.

CREATE TYPE DBO.TT_MFAT_DT_ITENS_RET_NF AS TABLE
(
		 nr_item_dt		 INT identity(1,1),
		 cd_produto		 char(13),
		 nr_item_produto int,
		 cd_origem_dt	 int,
		 cd_destino_dt	 int,		 		 
		 qt_receb		 int,
		 qt_dt			 int,
		 qt_saldo_receb  int,
		 qt_pedido_dt	 int,		 
		 nr_nf_origem	 varchar(8),
		 ds_serie_origem varchar(2),
		 dt_emissao		 datetime,
		 cd_barras		 char(13) NULL,
		 tp_estoque		 varchar(3) NULL,
		 tp_unidade	         VARCHAR(2) NULL
)

E preciso fazer o insert nela na seguinte condição:

DECLARE @TT_MFAT_DT_ITENS_RET_NF AS DBO.TT_MFAT_DT_ITENS_RET_NF
insert into #@TT_MFAT_DT_ITENS_RET_NF
EXEC sgf_fat.dbo.p_mfat_retorno_dt_item @TT_ITENS_DT, @fl_erro_ret OUTPUT, @ds_msg_ret OUTPUT

O problema é que não insere nada, acredito que seja por causa do meu OUTPUT, alguém pode me dizer se tem como fazer isso?

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei mudar o retorno para uma string simples e mesmo assim não acontece nada.

Create table #TmpRetDT123(
					ds_serie_origem varchar(123)				
			)

insert into #TmpRetDT123 
 EXEC sgf_fat.dbo.p_mfat_retorno_dt_item @TT_ITENS_DT
select * from #TmpRetDT123
drop table #TmpRetDT123


Me retorna a msg: Command(s) completed successfully.

 

Nem o select vem, acho estranho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que o problema seja, porque minha PROC, chama uma outra proc.

create table #tmpRetItemSaldo
	(		
		cd_produto char(13),
		nr_item int,
		qt_receb int, 
		qt_dt int,
		qt_saldo_receb int, 
		qt_pedido_dt int,
		dt_emissao datetime,
		nr_nf_origem varchar(6),
		ds_serie_origem varchar(3),
		cd_origem_dt	int,
		cd_destino_dt int		
	)

	--–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;

Essa eh a chamada da segunda proc.

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.