Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. ---------------------------------------FICHA 8----------------------------------------------
  2. CREATE OR REPLACE VIEW v_total_doutorados
  3. AS
  4. select p.ID_INST as intituicao, count(*) as total_doutorados
  5. from pessoa p join docente d ON (p.id = d.id)
  6. where d.grau = 'D'
  7. GROUP BY p.ID_INST;
  8. ---------------------------------------------------
  9.  
  10. GRANT SELECT ON v_total_doutorados TO presidente;
  11.  
  12. --------------------------------------------------
  13. CREATE OR REPLACE VIEW v_total_alunos_benef
  14. AS
  15. Select p.id_inst as instituicao, count(*) as total_alunos_benef
  16. from pessoa p join aluno a on (p.id = a.id)
  17. where a.TEM_BENEFICIOS = 'S'
  18. group by p.ID_INST;
  19.  
  20. --------------------------------------------------
  21.  
  22. GRANT SELECT ON v_total_alunos_benef TO presidente;
  23.  
  24. --------------------------------------------------
  25.  
  26. select p.prim_nome as nome_pessoa, i.nome as nome_instituicao, nvl(t.num_telefone, '<sem contacto>') as num_telefone
  27. from pessoa p join instituicao_ensino ie ON (p.ID_INST = ie.id)
  28. join instituicao i ON (ie.id = i.id)
  29. join telefone t ON (p.id = t.id_pessoa);
  30.  
  31. -----------------------------------------------------
  32.  
  33. CREATE OR REPLACE FUNCTION func_nome_completo (pNome VARCHAR2 ,pId pessoa.id%type)
  34. RETURN VARCHAR2
  35. IS
  36. primeiroNome pessoa.prim_nome%type;
  37. ultimoNome PESSOA.ULT_NOME%type;
  38. BEGIN
  39. SELECT PRIM_NOME, ULT_NOME
  40. INTO primeiroNome, ultimoNome
  41. FROM pessoa
  42. WHERE id=pId;
  43.  
  44. if(pNome = 'pnome') THEN
  45. return primeiroNome || ' ' || ultimoNome;
  46. elsif (pNome = 'unome') THEN
  47. return ultimoNome || ', ' || primeiroNome;
  48. else
  49. return null;
  50. end if;
  51. END func_nome_completo;
  52. /
  53.  
  54. select func_nome_completo('pnome',3)
  55. from pessoa;
  56.  
  57.  
  58. ----------------FICHA PARTE II--------------
  59. --R9
  60. CREATE SEQUENCE seq_pessoa_pk START WITH 1 INCREMENT BY 5 MAXVALUE 999999;
  61.  
  62. DROP SEQUENCE seq_pessoa_pk;
  63.  
  64. CREATE OR REPLACE TRIGGER tbi_pessoa
  65. BEFORE INSERT ON pessoa
  66. FOR EACH ROW
  67. BEGIN
  68. :NEW.id := seq_pessoa_pk.NEXTVAL;
  69. END;
  70. /
  71.  
  72.  
  73. INSERT INTO pessoa(prim_nome,ult_nome,genero,nif,id_inst)
  74. VALUES(Jarbas,Beterraba,M,123456789,1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement