Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.38 KB | None | 0 0
  1. CREATE TABLE etaty(
  2. et_nazwa varchar2(20) constraint etaty_pk PRIMARY KEY,
  3. et_max_pensja number(8,2)
  4. );
  5.  
  6. CREATE TABLE pracownicy(
  7. pr_numer number(6) constraint pracownicy_pk PRIMARY KEY,
  8. pr_nazwisko varchar2(20),
  9. pr_imie varchar2(20),
  10. pr_data_zatrudnienia date,
  11. pr_et_nazwa varchar2(20) constraint prac_etaty_fk references etaty(et_nazwa),
  12. pr_pensja number(8,2) default 0
  13. );
  14.  
  15. CREATE TABLE oddzialy(
  16. od_numer number(4) constraint oddzialy_pk primary key,
  17. od_nazwa varchar2(50)
  18. );
  19.  
  20. INSERT INTO etaty VALUES('Inzynier',5000);
  21. INSERT INTO etaty VALUES('Stazysta',2000);
  22. INSERT INTO etaty VALUES('Sprzataczka',1800);
  23. INSERT INTO etaty VALUES('Szef',10000);
  24. INSERT INTO etaty VALUES('Sekretarka',3500);
  25.  
  26. INSERT INTO pracownicy VALUES (1,'Tadeusz','Tomasz', to_date('2018-01-01','YYYY-MM-DD'),'Szef',9500);
  27. INSERT INTO pracownicy VALUES (2,'Tadeusz','Krystyna', to_date('2018-01-01','YYYY-MM-DD'),'Sekretarka',2500);
  28. INSERT INTO pracownicy VALUES (3,'Tadeusz','Karol', to_date('2018-01-01','YYYY-MM-DD'),'Inzynier',4500);
  29. INSERT INTO pracownicy VALUES (4,'Tadeusz','Jadwiga', to_date('2018-01-01','YYYY-MM-DD'),'Sprzataczka',1500);
  30. INSERT INTO pracownicy VALUES (5,'Tadeusz','Jan', to_date('2018-01-01','YYYY-MM-DD'),'Inzynier',4500);
  31.  
  32. INSERT INTO oddzialy VALUES(1,'Siedlce');
  33. INSERT INTO oddzialy VALUES(2,'Wroclaw');
  34. INSERT INTO oddzialy VALUES(3,'Szczecin');
  35. INSERT INTO oddzialy VALUES(4,'Poznan');
  36. INSERT INTO oddzialy VALUES(5,'Krakow');
  37.  
  38. --zatwierdzania
  39. CREATE TABLESPACE dane1
  40. DATAFILE 'dane.dbf'
  41. SIZE 10M;
  42.  
  43. CREATE TABLESPACE dane2
  44. DATAFILE 'dane.dbf'
  45. SIZE 20M AUTOEXTEND ON NEXT 2M;
  46.  
  47. CREATE INDEX pr_numer_idx
  48. ON pracownicy(pr_numer)
  49. PARTITION BY RANGE(pr_numer)
  50. (PARTITION p_tabela1_50 VALUES LESS THAN (50) TABLESPACE dane1,
  51. PARTITION p_tabela1_m VALUES LESS THAN (maxvalue) TABLESPACE dane2
  52. );
  53.  
  54. --gloablny
  55. CREATE INDEX pr_numer_idx
  56. ON pracownicy(pr_numer)
  57. GLOBAL
  58. PARTITION BY HASH(pr_numer)
  59. PARTITIONS 2;
  60.  
  61. CREATE SYNONYM etaty1 FOR etaty@link1;
  62. CREATE SYNONYM pracownicy1 FOR pracownicy@link1;
  63. CREATE SYNONYM oddzialy1 FOR oddzialy@link1;
  64. CREATE SYNONYM etaty3 FOR etaty@link3;
  65. CREATE SYNONYM pracownicy3 FOR pracownicy@link3;
  66. CREATE SYNONYM oddzialy3 FOR oddzialy@link3;
  67.  
  68. INSERT INTO etaty3 VALUES('front-end developer',9250.00);
  69. INSERT INTO pracownicy3 VALUES(6,'Tadeusz','Marcin',to_date('2018-01-01','YYYY-MM-DD'),'front-end developer',8000);
  70.  
  71. CREATE SAVEPOINT sp_pierwszy;
  72.  
  73. INSERT INTO oddzialy1 VALUES(6,'Warszawa');
  74.  
  75. CREATE SAVEPOINT sp_drugi;
  76.  
  77. DELETE FROM pracownicy WHERE pr_pensja<2000;
  78. UPDATE pracownicy SET pr_pensja=(pr_pensja*1.2) where pr_et_nazwa='junior developer';
  79. COMMIT;
  80.  
  81. CREATE MATERIALIZED VIEW mv_etaty3
  82. BUILD IMMEDIATE
  83. REFRESH COMPLETE
  84. START WITH sysdate+(1/(24*60))
  85. NEXT sysdate+(1/(24*30))
  86. AS
  87. SELECT * FROM etaty3;
  88.  
  89. CREATE MATERIALIZED VIEW mv_pracownicy3
  90. BUILD IMMEDIATE
  91. REFRESH COMPLETE
  92. START WITH sysdate+(1/(24*60))
  93. NEXT sysdate+(1/(24*30))
  94. AS
  95. SELECT * FROM pracownicy3;
  96.  
  97. CREATE MATERIALIZED VIEW mv_oddzialy1
  98. BUILD IMMEDIATE
  99. REFRESH COMPLETE
  100. START WITH sysdate+(1/(24*60))
  101. NEXT sysdate+(1/(24*30))
  102. AS
  103. SELECT * FROM oddzialy1;
  104.  
  105. exec dbms_mview.refresh('mv_etaty3');
  106. exec dbms_mview.refresh('mv_pracownicy3');
  107. exec dbms_mview.refresh('mv_odzialy1');
  108.  
  109. CREATE OR REPLACE VIEW v_pracownicy
  110. AS
  111. SELECT * FROM pracownicy1
  112. WHERE pr_pensja>=2500 AND pr_data_zatrudnienia=to_date('2017-01-01','YYYY-MM-DD')
  113. WITH CHECK OPTION CONSTRAINT v_chk_warunek;
  114.  
  115. INSERT INTO v_pracownicy VALUES (10,'Sprawdzian','Tomasz', to_date('2018-01-01','YYYY-MM-DD'),'Szef',1500);
  116. INSERT INTO v_pracownicy VALUES (11,'Sprawdzian','Tadeusz', to_date('2017-01-01','YYYY-MM-DD'),'Szef',9500);
  117.  
  118. --uczestnik
  119. CREATE TABLESPACE dane1
  120. DATAFILE 'dane.dbf'
  121. SIZE 10M;
  122.  
  123. CREATE TABLESPACE dane2
  124. DATAFILE 'dane.dbf'
  125. SIZE 20M AUTOEXTEND ON NEXT 2M;
  126.  
  127. CREATE TABLESPACE dane3
  128. DATAFILE 'dane.dbf'
  129. SIZE 10M;
  130.  
  131. CREATE TABLESPACE dane4
  132. DATAFILE 'dane.dbf'
  133. SIZE 20M AUTOEXTEND ON NEXT 2M;
  134.  
  135. CREATE TABLE oddzialy
  136. (od_numer number(4) constraint oddzialy_pk primary key,
  137. od_nazwa varchar2(50))
  138. PARTITION BY RANGE(od_numer)
  139. (PARTITION p_tabela1_99 VALUES LESS THAN (100)
  140. TABLESPACE dane1,
  141. PARTITION p_tabela1_199 VALUES LESS THAN (200)
  142. TABLESPACE dane2,
  143. PARTITION p_tabela1_299 VALUES LESS THAN (300)
  144. TABLESPACE dane3,
  145. PARTITION p_tabela1_max VALUES LESS THAN (maxvalue)
  146. TABLESPACE dane4);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement