Ir para conteúdo

Arquivado

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

leoprofessor

Como criar uma VIEW a partir de um cursor.

Recommended Posts

Tenho esse cursor aqui ó:DECLARE @Identificador_mme_empreendimento VARCHAR (50), @Tipo_empreendimento VARCHAR(50), @data_cadastro_socioeconomico varchar(50), @data_atualizacao_cadastro_economico varchar(50), @numero_assentamentos_acordo varchar(50), @numero_assentamento_realizados varchar(50), @populacao_atingida_realizado varchar(50), @I INTEGERDECLARE LI_CURSOR CURSOR FOR SELECT dbo.Projeto.PRO_IdentificadorBI AS identificador_mme_empreendimento, GRU_NOMEGRUPO AS 'tipo_empreendimento', '1900-01-01' as 'data_cadastro_socioeconomico', '1900-01-01' as 'data_atualizacao_cadastro_socioeconomico', '-3'as 'numero_assentamentos_acordo', '-3' as 'numero_assentamentos_realizados', '-3' as 'populacao_diretamente_atingida_realizado' FROM dbo.Projeto INNER JOIN dbo.sad_mse_cmse_01_itens_comuns ON dbo.Projeto.PRO_IdentificadorBI = dbo.sad_mse_cmse_01_itens_comuns.identificador_mme_empreendimento, dbo.Grupo, dbo.ClasseBI WHERE Projeto.PRO_IdGrupo = dbo.Grupo.GRU_IdGrupo AND dbo.Grupo.GRU_IdClasseBI = dbo.ClasseBI.CLA_IdClasse AND (dbo.Grupo.GRU_NOMEGRUPO ='PCH') oRDER BY dbo.Projeto.PRO_IdentificadorBIOPEN LI_CURSORFETCH NEXT FROM LI_CURSORINTO @Identificador_mme_empreendimento, @Tipo_empreendimento, @data_cadastro_socioeconomico, @data_atualizacao_cadastro_economico, @numero_assentamentos_acordo, @numero_assentamento_realizados, @populacao_atingida_realizadoSET @I = 0WHILE @@FETCH_STATUS = 0BEGIN SET @I = @I + 1;-- ABRE OUTRO CURSOR PARA PEGAR AS INFORMAÇÕES DE LP -- Concatenate and display the current values in the variables. PRINT CAST(@I AS varchar(5)) + ' ' + @Identificador_mme_empreendimento + ' ' + @Tipo_empreendimento + ' ' + @data_cadastro_socioeconomico + ' ' + @data_atualizacao_cadastro_economico + ' ' + @numero_assentamentos_acordo + ' ' + @numero_assentamento_realizados + ' ' + @populacao_atingida_realizado -- This is executed as long as the previous fetch succeeds. FETCH NEXT FROM LI_CURSOR INTO @Identificador_mme_empreendimento, @Tipo_empreendimento, @data_cadastro_socioeconomico, @data_atualizacao_cadastro_economico, @numero_assentamentos_acordo, @numero_assentamento_realizados, @populacao_atingida_realizado ENDCLOSE LI_CURSORDEALLOCATE LI_CURSORele ta funcionando direitinho, so que preciso fazer uma VIEW com ele entende?!?!?! Dai eu tenteiCREATE VIEW vw_testease joguei o código acima só que não funcionou, dá erro! Alguém pode me ajudar??????? :natal<_<:

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta vendo essa query abaixo:--------------------------------------------------------------------------------------------------SELECT dbo.Projeto.PRO_IdentificadorBI AS identificador_mme_empreendimento, '1900-01-01' as 'lp-data_requerimento', 'NÃO ESPECIFICADO' as 'ato_justificatorio', '1900-01-01' as 'data_termo_referencia', '1900-01-01' as 'data_eia_rima_realizada', '1900-01-01' as 'complementacao_eia_rima_data_solicitacao', '1900-01-01' as 'complementacao_eia_rima_data_entrega', 'NÃO ESPECIFICADO' as 'local_audiencia_publica', '1900-01-01' as 'data_audiencia_publica', ati_data as 'lp_data_obtencao', ati_numero as 'lp_numero', '1900-01-01' as 'lp_data_validade', 'NÃO ESPECIFICADO' as 'lp_motivo_cancelamento_negacao', sit_nomesituacao as 'lp_situacao', '1900-01-01' as 'li_data_requerimento', ati_data as 'li_data_obtencao', 'NÃO ESPECIFICADO' as 'solicitacao_autorizacao_supressao_vegetacao', '1900-01-01' as 'data_autorizacao_supressao_vegetacao', 'NÃO ESPECIFICADO'as 'autorizacao_supressao_vegetacao', ati_numero as 'li_numero', sit_nomesituacao as 'li_situacao', '1900-01-01' as 'li_data_validade', 'NÃO ESPECIFICADO' as 'li_motivo_cancelamento_negacao', '1900-01-01' as 'lo-data_requerimento', ati_data as 'lo_data_obtencao', ati_numero as 'lo_numero', '1900-01-01' as 'lo_data_validade', 'NÃO ESPECIFICADO' as 'lo_motivo_cancelamento_negacao', sit_nomesituacao as 'lo_situacao' FROM dbo.Projeto INNER JOIN dbo.Grupo ON dbo.Projeto.PRO_IdGrupo = dbo.Grupo.GRU_IdGrupo INNER JOIN dbo.sad_mse_cmse_01_itens_comuns ON dbo.Projeto.PRO_IdentificadorBI = dbo.sad_mse_cmse_01_itens_comuns.identificador_mme_empreendimento, Atividade, Situacao, Marco, Grupo_MarcoWHERE Situacao.SIT_IdSituacao = Projeto.PRO_IdSituacaoAND Projeto.PRO_IdProjeto = Atividade.ATI_idProjetoAND Grupo.GRU_IdGrupo = Grupo_Marco.GRUM_idGrupoAND Marco.MAR_IdMarco = Grupo_Marco.GRUM_idMarcoAND Atividade.ATI_IdMarco in ('2','3','4')UNIONSELECT dbo.Projeto.PRO_IdentificadorBI AS identificador_mme_empreendimento, '1900-01-01' as 'lp-data_requerimento', 'NÃO ESPECIFICADO' as 'ato_justificatorio', '1900-01-01' as 'data_termo_referencia', '1900-01-01' as 'data_eia_rima_realizada', '1900-01-01' as 'complementacao_eia_rima_data_solicitacao', '1900-01-01' as 'complementacao_eia_rima_data_entrega', 'NÃO ESPECIFICADO' as 'local_audiencia_publica', '1900-01-01' as 'data_audiencia_publica', ati_data as 'lp_data_obtencao', ati_numero as 'lp_numero', '1900-01-01' as 'lp_data_validade', 'NÃO ESPECIFICADO' as 'lp_motivo_cancelamento_negacao', sit_nomesituacao as 'lp_situacao', '1900-01-01' as 'li_data_requerimento', ati_data as 'li_data_obtencao', 'NÃO ESPECIFICADO' as 'solicitacao_autorizacao_supressao_vegetacao', '1900-01-01' as 'data_autorizacao_supressao_vegetacao', 'NÃO ESPECIFICADO'as 'autorizacao_supressao_vegetacao', ati_numero as 'li_numero', sit_nomesituacao as 'li_situacao', '1900-01-01' as 'li_data_validade', 'NÃO ESPECIFICADO' as 'li_motivo_cancelamento_negacao', '1900-01-01' as 'lo-data_requerimento', ati_data as 'lo_data_obtencao', ati_numero as 'lo_numero', '1900-01-01' as 'lo_data_validade', 'NÃO ESPECIFICADO' as 'lo_motivo_cancelamento_negacao', sit_nomesituacao as 'lo_situacao' FROM dbo.Projeto INNER JOIN dbo.Grupo ON dbo.Projeto.PRO_IdGrupo = dbo.Grupo.GRU_IdGrupo INNER JOIN dbo.sad_mse_cmse_01_itens_comuns ON dbo.Projeto.PRO_IdentificadorBI = dbo.sad_mse_cmse_01_itens_comuns.identificador_mme_empreendimento, Atividade, Situacao, Marco, Grupo_MarcoWHERE Situacao.SIT_IdSituacao = Projeto.PRO_IdSituacaoAND Projeto.PRO_IdProjeto = Atividade.ATI_idProjetoAND Grupo.GRU_IdGrupo = Grupo_Marco.GRUM_idGrupoAND Marco.MAR_IdMarco = Grupo_Marco.GRUM_idMarcoAND Atividade.ATI_IdMarco in ('2','3','4')UNIONSELECT dbo.Projeto.PRO_IdentificadorBI AS identificador_mme_empreendimento, '1900-01-01' as 'lp-data_requerimento', 'NÃO ESPECIFICADO' as 'ato_justificatorio', '1900-01-01' as 'data_termo_referencia', '1900-01-01' as 'data_eia_rima_realizada', '1900-01-01' as 'complementacao_eia_rima_data_solicitacao', '1900-01-01' as 'complementacao_eia_rima_data_entrega', 'NÃO ESPECIFICADO' as 'local_audiencia_publica', '1900-01-01' as 'data_audiencia_publica', ati_data as 'lp_data_obtencao', ati_numero as 'lp_numero', '1900-01-01' as 'lp_data_validade', 'NÃO ESPECIFICADO' as 'lp_motivo_cancelamento_negacao', sit_nomesituacao as 'lp_situacao', '1900-01-01' as 'li_data_requerimento', ati_data as 'li_data_obtencao', 'NÃO ESPECIFICADO' as 'solicitacao_autorizacao_supressao_vegetacao', '1900-01-01' as 'data_autorizacao_supressao_vegetacao', 'NÃO ESPECIFICADO'as 'autorizacao_supressao_vegetacao', ati_numero as 'li_numero', sit_nomesituacao as 'li_situacao', '1900-01-01' as 'li_data_validade', 'NÃO ESPECIFICADO' as 'li_motivo_cancelamento_negacao', '1900-01-01' as 'lo-data_requerimento', ati_data as 'lo_data_obtencao', ati_numero as 'lo_numero', '1900-01-01' as 'lo_data_validade', 'NÃO ESPECIFICADO' as 'lo_motivo_cancelamento_negacao', sit_nomesituacao as 'lo_situacao' FROM dbo.Projeto INNER JOIN dbo.Grupo ON dbo.Projeto.PRO_IdGrupo = dbo.Grupo.GRU_IdGrupo INNER JOIN dbo.sad_mse_cmse_01_itens_comuns ON dbo.Projeto.PRO_IdentificadorBI = dbo.sad_mse_cmse_01_itens_comuns.identificador_mme_empreendimento, Atividade, Situacao, Marco, Grupo_MarcoWHERE Situacao.SIT_IdSituacao = Projeto.PRO_IdSituacaoAND Projeto.PRO_IdProjeto = Atividade.ATI_idProjetoAND Grupo.GRU_IdGrupo = Grupo_Marco.GRUM_idGrupoAND Marco.MAR_IdMarco = Grupo_Marco.GRUM_idMarcoAND Atividade.ATI_IdMarco in ('2','3','4')--------------------------------------------------------------------Então, ela retorna isso aqui ó:APSANTH 1900-01-01 APSANTH 1900-01-02 APSANTH 1900-01-03o mesmo registro repete-se 3 vezer e as datas tem que sair em campos diferentes, ou seja, APSANTH tem um campo LI_APSANTH com a primeira data, tem outro campo LP_APSANTH com a segunda data e LO_APSANTH com a terceira data. Eu tentei fazer um cursor porque o sistema é alimentado por VIEWS so que o Eriva disse que cursores não suportam VIEWS. Dai alguem tem alguma solução para o problema????

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.