====== Criar views para usar em outros sistemas ====== Exemplo 1: view que retorna os dados de um processo para o sisproen ===== Passo 1 ===== Criar o usuário que utilizará a view. -- criar usuário sisproen CREATE USER sisproen WITH PASSWORD 'senha'; ===== Passo 2 ===== Criar a view (por exemplo, obter dados dos processos do IFCE) CREATE VIEW vw_protocolo_sisproen AS select numero_processo, assunto, numero_documento, pessoa.nome as pessoa_interessada, unidadeorganizacional.nome as unidade_organizacional, setor.nome as setor, data_cadastro, data_finalizacao, (CASE WHEN status=1 THEN 'EM TRÂMITE' WHEN status=2 THEN 'FINALIZADO' WHEN status=3 THEN 'ARQUIVADO' ELSE 'OUTRO' END) as status, (CASE WHEN tipo=1 THEN 'MEMORANDO' WHEN tipo=2 THEN 'OFÍCIO' WHEN tipo=3 THEN 'REQUERIMENTO' ELSE 'OUTRO' END) as tipo from protocolo_processo INNER JOIN pessoa ON protocolo_processo.pessoa_interessada_id = pessoa.id INNER JOIN unidadeorganizacional ON protocolo_processo.uo_id = unidadeorganizacional.id INNER JOIN setor ON protocolo_processo.setor_origem_id = setor.id; ===== Passo 3 ===== Alterar o dono da view para o usuário suap ALTER TABLE vw_protocolo_sisproen OWNER TO suap; GRANT ALL ON TABLE vw_protocolo_sisproen TO suap; ===== Passo 4 ===== Atribuir as permissões de select na view para o usuário que foi criado no passo 1 GRANT SELECT ON TABLE vw_protocolo_sisproen TO sisproen; -- colocar o usuario dele ===== Passo 5 ===== Como fazer a consulta? select * from vw_protocolo_sisproen where numero_processo = '23259.005198.2015-86'; ------------------ Exemplo 2: view para obter os dados dos professores do SUAP create view vw_professor_sisproen AS select pessoa_fisica.pessoa_ptr_id as id, pessoa_fisica.cpf as cpf, pessoa_fisica.rg as rg, TO_CHAR(pessoa_fisica.nascimento_data, 'DD-MM-YYYY') as data_nascimento, pessoa_fisica.sexo as sexo, pessoa_fisica.username as matricula_siape, pessoa.nome as nome, pessoa.email_secundario as email, pessoa.excluido as excluido from edu_professor inner join pessoa_fisica on edu_professor.pessoa_fisica_id = pessoa_fisica.pessoa_ptr_id inner join pessoa on pessoa_fisica.pessoa_ptr_id = pessoa.id order by pessoa.nome asc; ALTER TABLE vw_professor_sisproen OWNER TO suap; GRANT ALL ON TABLE vw_professor_sisproen TO suap; GRANT SELECT ON TABLE vw_professor_sisproen TO sisproen; ----------- Última revisão: ~~LASTMOD~~ ----------- [[sistemas:suap:acessodgti|Voltar à página Principal do SUAP (Acesso DGTI)]]