Advertisement
Guest User

Untitled

a guest
Mar 28th, 2018
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 17.97 KB | None | 0 0
  1. INSERT INTO ENTERPRISE VALUES(1,'Mercury',8462756328);
  2. INSERT INTO ENTERPRISE VALUES(2,'Altarix',8462116328);
  3. INSERT INTO ENTERPRISE VALUES(3,'IBM',8462756111);
  4. INSERT INTO ENTERPRISE VALUES(4,'Megafon',8462716328);
  5. INSERT INTO ENTERPRISE VALUES(5,'Sberbank',8462256328);
  6. INSERT INTO ENTERPRISE VALUES(6,'VTB-24',8462543328);
  7. INSERT INTO ENTERPRISE VALUES(7,'Tinkoff-bank',8462776328);
  8. INSERT INTO ENTERPRISE VALUES(8,'Vita',8462756312);
  9. INSERT INTO ENTERPRISE VALUES(9,'Haulmount',84622334328);
  10. INSERT INTO ENTERPRISE VALUES(10,'Apple',8888888888);
  11.  
  12. INSERT INTO EMPLOYEE VALUES(1,'Габрусевич Павел Евгеньевич',89650738240,'misefealaska@gmail.com',21);
  13. INSERT INTO EMPLOYEE VALUES(2,'Чугунов Евгений Александрович',89650711140,'kolobok@gmail.com',20);
  14. INSERT INTO EMPLOYEE VALUES(3,'Харламов Ярослав Александрович',89990738240,'harlamov@gmail.com',24);
  15. INSERT INTO EMPLOYEE VALUES(4,'Голов Максим Юрьевич',87656543211,'golov@gmail.com',21);
  16. INSERT INTO EMPLOYEE VALUES(5,'Каймаков Кирилл Сергеевич',89611738240,'kaymakov@gmail.com',20);
  17. INSERT INTO EMPLOYEE VALUES(6,'Шепелев Федор Иванович',88888738240,'shepelev@gmail.com',20);
  18. INSERT INTO EMPLOYEE VALUES(7,'Иванов Петр Петрович',89096756787,'ivanov@gmail.com',21);
  19. INSERT INTO EMPLOYEE VALUES(8,'Кузнецова Алина Юрьевна',81234234789,'mka@gmail.com',21);
  20. INSERT INTO EMPLOYEE VALUES(9,'Витина Екатерина Олеговна',88989765454,'oloi@gmail.com',21);
  21. INSERT INTO EMPLOYEE VALUES(10,'Мороз Елена Петровна',86754765456,'gendalf@gmail.com',21);
  22. INSERT INTO EMPLOYEE VALUES(11,'Орлова Анастасия Сергеевна',80987654321,'ska@gmail.com',21);
  23. INSERT INTO EMPLOYEE VALUES(12,'Постафина Мария Серегеевна',89999876542,'feaka@gmail.com',21);
  24.  
  25. INSERT INTO Speciality VALUES(1,'Программист');
  26. INSERT INTO Speciality VALUES(2,'Инженер');
  27. INSERT INTO Speciality VALUES(3,'Менеджер');
  28. INSERT INTO Speciality VALUES(4,'Преподаватель');
  29. INSERT INTO Speciality VALUES(5,'Юрист');
  30. INSERT INTO Speciality VALUES(6,'Экономист');
  31.  
  32. INSERT INTO RESUME VALUES(1,1,1,'12-07-17');
  33. INSERT INTO RESUME VALUES(2,1,2,'12-06-17');
  34. INSERT INTO RESUME VALUES(1,2,3,'12-08-17');
  35. INSERT INTO RESUME VALUES(2,3,4,'22-12-17');
  36. INSERT INTO RESUME VALUES(1,4,5,'12-07-17');
  37. INSERT INTO RESUME VALUES(1,5,6,'10-05-17');
  38. INSERT INTO RESUME VALUES(1,6,7,'12-06-17');
  39. INSERT INTO RESUME VALUES(6,7,8,'11-07-17');
  40. INSERT INTO RESUME VALUES(3,8,9,'11-07-17');
  41. INSERT INTO RESUME VALUES(5,9,10,'11-07-17');
  42.  
  43. INSERT INTO VACANCY VALUES(1,1,50000,2,1);
  44. INSERT INTO VACANCY VALUES(1,2,40000,2,6);
  45. INSERT INTO VACANCY VALUES(2,3,60000,3,1);
  46. INSERT INTO VACANCY VALUES(4,4,70000,2,1);
  47. INSERT INTO VACANCY VALUES(5,5,40000,2,2);
  48. INSERT INTO VACANCY VALUES(6,6,30000,2,1);
  49. INSERT INTO VACANCY VALUES(3,7,20000,2,6);
  50. INSERT INTO VACANCY VALUES(2,8,55000,2,4);
  51. INSERT INTO VACANCY VALUES(7,9,58000,2,1);
  52. INSERT INTO VACANCY VALUES(7,10,58000,2,3);
  53.  
  54. SELECT Vacancy.NAME FROM Vacancy
  55. INNER JOIN Speciality ON Vacancy.speciality_id=Speciality.id
  56. WHERE speciality.name='Программист';
  57.  
  58. SELECT VACANCY.NAME FROM Vacancy
  59. INNER JOIN Enterprise ON Vacancy.ENTERPRISE_ID=Enterprise.ID
  60. WHERE Enterprise.name='Mercury';
  61.  
  62. SELECT EMPLOYEE.FIO FROM Employee
  63. INNER JOIN Resume ON Resume.EMPLOYEE_ID=Employee.ID
  64. INNER JOIN Speciality ON Resume.SPECIALITY_ID=Speciality.ID
  65. INNER JOIN Vacancy ON Vacancy.SPECIALITY_ID = Speciality.ID
  66. WHERE Vacancy.name='Android-Разработчик';
  67.  
  68. SELECT Enterprise.name, COUNT(*) AS Numberr FROM Enterprise
  69. INNER JOIN VACANCY ON VACANCY.ENTERPRISE_ID=Enterprise.ID
  70. WHERE VACANCY.ID>0 OR VACANCY.ID < 1
  71. GROUP BY Enterprise.Name;
  72.  
  73. SELECT Enterprise.name,Speciality.NAME FROM Enterprise
  74. INNER JOIN VACANCY ON VACANCY.ENTERPRISE_ID=Enterprise.ID
  75. INNER JOIN Speciality ON Vacancy.Speciality_ID=Speciality.ID;
  76.  
  77. INSERT INTO Emplyeeview VALUES (13,'Шмыкин Федор Геннадьевич',86786787678,'durak@gmail.com',19);
  78. UPDATE EmplyeeView SET age=25
  79. WHERE id=13;
  80. INSERT INTO SpecialityView VALUES (7,'Маркетолог');
  81. DELETE FROM SpecialityView
  82. WHERE name='Маркетолог';
  83.  
  84.  
  85. CREATE VIEW FiveView AS
  86. SELECT Enterprise.name AS Firm, Speciality.NAME AS Special FROM Enterprise
  87. INNER JOIN VACANCY ON VACANCY.ENTERPRISE_ID=Enterprise.ID
  88. INNER JOIN Speciality ON Vacancy.Speciality_ID=Speciality.ID;
  89.  
  90. CREATE OR REPLACE VIEW ViewWithControl AS
  91. SELECT *  FROM EMPLOYEE
  92. WHERE age=21;
  93.  
  94.  
  95.  
  96. CREATE VIEW ViewWithCheck AS
  97. SELECT * FROM  Resume
  98. WHERE DATA BETWEEN '12.06.17' AND '22.12.17'
  99. WITH CHECK OPTION;
  100.  
  101.  
  102. CREATE SEQUENCE  "NEWUSER"."ID_EMP_SEQ"  
  103. MINVALUE 1
  104. MAXVALUE 1000
  105. INCREMENT BY 1
  106. START WITH 14
  107. NOCACHE
  108. NOORDER
  109. NOCYCLE;
  110.  
  111. CREATE OR REPLACE PROCEDURE Add_New_Employee(
  112. Fio_em Varchar2,Phone_em NUMBER,Email_em Varchar2,Age_em NUMBER,NameUser_em Varchar2)
  113. IS
  114. BEGIN
  115. INSERT INTO Employee VALUES(ID_EMP_SEQ.NEXTVAL,Fio_em,Phone_em,Email_em,Age_em,NameUser_em);
  116. commit;
  117. END;
  118.  
  119. BEGIN
  120. Add_New_Employee('Ан Виктор Петрович',765453,'port@gmail.com',22,'NewUser');
  121. END;
  122.  
  123. CREATE OR REPLACE PROCEDURE Update_Employee(Id_em NUMBER,Fio_em Varchar2,
  124. Phone_em NUMBER,Email_em Varchar2,Age_em NUMBER,NameUser_em Varchar2)
  125. IS
  126. Employee_Exist Varchar2(70);
  127. BEGIN
  128. SELECT FIO INTO Employee_Exist FROM EMPLOYEE
  129. WHERE id=id_em;
  130. IF Employee_Exist IS NOT NULL THEN
  131. UPDATE EMPLOYEE SET FIO=Fio_em,Age=Age_em,Email=Email_em,
  132. Phone=Phone_em,NameUser=NameUser_em WHERE Id=Id_em;
  133. commit;
  134. ELSE RAISE_APPLICATION_ERROR(-20001,'ПОЛЬЗОВАТЕЛЯ С ТАКИМ ID НЕ СУЩЕСТВУЕТ!');
  135. END IF;
  136. END;
  137.  
  138. EXECUTE Update_Employee(1,'Габрусевич Павел Евгеньевич',89650738240,'misefealaska@gmail.com',21,'NameUser');
  139.  
  140. CREATE OR REPLACE PROCEDURE Add_New_Employee(
  141. Fio_em Varchar2,Phone_em NUMBER,Email_em Varchar2,Age_em NUMBER,NameUser_em Varchar2)
  142. IS
  143. Fio_Already_Exist EXCEPTION;
  144. Employee_Fio_Exist VARCHAR2(70);
  145. BEGIN
  146. SELECT FIO INTO Employee_Fio_Exist FROM EMPLOYEE WHERE FIO=Fio_em;
  147. Raise Fio_Already_Exist;
  148. EXCEPTION
  149. WHEN NO_DATA_FOUND THEN
  150. BEGIN
  151. INSERT INTO Employee VALUES(ID_EMP_SEQ.NEXTVAL,Fio_em,Phone_em,Email_em,Age_em,NameUser_em);
  152. commit;
  153. END;
  154. WHEN Fio_Already_Exist THEN
  155. BEGIN
  156. DBMS_OUTPUT.PUT_LINE('Задайте другую фамилию');
  157. RAISE_APPLICATION_ERROR(-20001,'Пользователь с такой фамилией уже существует!');
  158. END;    
  159. END;
  160.  
  161. EXECUTE Add_New_Employee('Ан Виктор Петрович',765453,'port@gmail.com',22,'NewUser');
  162.  
  163. CREATE OR REPLACE PROCEDURE Update_Employee(Id_em NUMBER,Fio_em Varchar2,
  164. Phone_em NUMBER,Email_em Varchar2,Age_em NUMBER,NameUser_em Varchar2)
  165. IS
  166. Fio_Already_Exist EXCEPTION;
  167. Employee_Fio_Exist VARCHAR2(70);
  168. Employee_Exist Varchar2(70);
  169. BEGIN
  170. SELECT FIO INTO Employee_Exist FROM EMPLOYEE
  171. WHERE id=id_em;
  172. IF Employee_Exist IS NOT NULL THEN
  173. BEGIN
  174. SELECT FIO INTO Employee_Fio_Exist FROM EMPLOYEE WHERE FIO=Fio_em;
  175. Raise Fio_Already_Exist;
  176. EXCEPTION
  177. WHEN NO_DATA_FOUND THEN
  178. BEGIN
  179. UPDATE EMPLOYEE SET FIO=Fio_em,Age=Age_em,Email=Email_em,
  180. Phone=Phone_em,NameUser=NameUser_em WHERE Id=Id_em;
  181. commit;
  182. END;
  183. WHEN Fio_Already_Exist THEN
  184. BEGIN
  185. DBMS_OUTPUT.PUT_LINE('Задайте другую фамилию');
  186. RAISE_APPLICATION_ERROR(-20001,'Пользователь с такой фамилией уже существует!');
  187. END;    
  188. END;
  189. ELSE RAISE_APPLICATION_ERROR(-20001,'ПОЛЬЗОВАТЕЛЯ С ТАКИМ ID НЕ СУЩЕСТВУЕТ!');
  190. END IF;
  191. END;
  192.  
  193. EXECUTE Update_Employee(1,'Габрусевич Павел Евгеньевич',89650738240,'misefealaska@gmail.com',21,'NameUser');
  194.  
  195. CREATE OR REPLACE PROCEDURE Delete_Enterprise_With_Vacancy(Deleted_Enterprise NUMBER)
  196. IS
  197. BEGIN
  198. DELETE FROM VACANCY WHERE Id IN
  199. (SELECT Id FROM Vacancy WHERE Enterprise_Id = Deleted_Enterprise);
  200. DELETE FROM Enterprise WHERE Id = Deleted_Enterprise;
  201. END;
  202.  
  203. EXECUTE Delete_Enterprise_With_Vacancy(3);
  204.  
  205. CREATE OR REPLACE PROCEDURE Delete_Speciality_With_Vacancy(Deleted_Speciality NUMBER)
  206. IS
  207. Curr_User VARCHAR(30);
  208. BEGIN
  209. SELECT USER
  210. INTO Curr_User
  211. FROM dual;
  212. IF(Curr_User IN ('NEWUSER','SYS')) THEN
  213. BEGIN
  214. DELETE FROM VACANCY WHERE Id IN
  215. (SELECT Id FROM Vacancy WHERE Speciality_Id = Deleted_Speciality );
  216. DELETE FROM SPECIALITY WHERE Id = Deleted_Speciality;
  217. END;
  218. ELSE
  219. Raise_Application_Error(-20001,'Вы не входите в список пользователей которым позволено выполнить данную операцию!');    
  220. END IF;
  221. END;
  222.  
  223. CREATE OR REPLACE PROCEDURE Add_New_Employee(
  224. Fio_em Varchar2,Phone_em NUMBER,Email_em Varchar2,Age_em NUMBER,NameUser_em Varchar2)
  225. IS
  226. Curr_User VARCHAR(30);
  227. Fio_Already_Exist EXCEPTION;
  228. Employee_Fio_Exist VARCHAR2(70);
  229. BEGIN
  230. SELECT USER
  231. INTO Curr_User
  232. FROM dual;
  233. IF(Curr_User IN ('NEWUSER','SYS')) THEN
  234. BEGIN
  235. SELECT FIO INTO Employee_Fio_Exist FROM EMPLOYEE WHERE FIO=Fio_em;
  236. Raise Fio_Already_Exist;
  237. EXCEPTION
  238. WHEN NO_DATA_FOUND THEN
  239. BEGIN
  240. INSERT INTO Employee VALUES(ID_EMP_SEQ.NEXTVAL,Fio_em,Phone_em,Email_em,Age_em,NameUser_em);
  241. commit;
  242. END;
  243. WHEN Fio_Already_Exist THEN
  244. BEGIN
  245. DBMS_OUTPUT.PUT_LINE('Задайте другую фамилию');
  246. RAISE_APPLICATION_ERROR(-20001,'Пользователь с такой фамилией уже существует!');
  247. END;    
  248. END;
  249. ELSE
  250. Raise_Application_Error(-20001,'Вы не входите в список пользователей которым позволено выполнить данную операцию!');    
  251. END IF;
  252. END;
  253.  
  254. CREATE OR REPLACE Package EmployeePackage IS
  255. PROCEDURE Add_New_Employee(
  256. Fio_em Varchar2,Phone_em NUMBER,Email_em Varchar2,Age_em NUMBER,NameUser_em Varchar2);
  257.  PROCEDURE Update_Employee(Id_em NUMBER,Fio_em Varchar2,
  258. Phone_em NUMBER,Email_em Varchar2,Age_em NUMBER,NameUser_em Varchar2);
  259. END EmployeePackage;
  260.  
  261. CREATE OR REPLACE Package Body EmployeePackage IS
  262. PROCEDURE Add_New_Employee(
  263. Fio_em Varchar2,Phone_em NUMBER,Email_em Varchar2,Age_em NUMBER,NameUser_em Varchar2)
  264. IS
  265. Fio_Already_Exist EXCEPTION;
  266. Employee_Fio_Exist VARCHAR2(70);
  267. BEGIN
  268. SELECT FIO INTO Employee_Fio_Exist FROM EMPLOYEE WHERE FIO=Fio_em;
  269. Raise Fio_Already_Exist;
  270. EXCEPTION
  271. WHEN NO_DATA_FOUND THEN
  272. BEGIN
  273. INSERT INTO Employee VALUES(ID_EMP_SEQ.NEXTVAL,Fio_em,Phone_em,Email_em,Age_em,NameUser_em);
  274. commit;
  275. END;
  276. WHEN Fio_Already_Exist THEN
  277. BEGIN
  278. DBMS_OUTPUT.PUT_LINE('Задайте другую фамилию');
  279. RAISE_APPLICATION_ERROR(-20001,'Пользователь с такой фамилией уже существует!');
  280. END;    
  281. END;
  282. PROCEDURE Update_Employee(Id_em NUMBER,Fio_em Varchar2,
  283. Phone_em NUMBER,Email_em Varchar2,Age_em NUMBER,NameUser_em Varchar2)
  284. IS
  285. Fio_Already_Exist EXCEPTION;
  286. Employee_Fio_Exist VARCHAR2(70);
  287. Employee_Exist Varchar2(70);
  288. BEGIN
  289. SELECT FIO INTO Employee_Exist FROM EMPLOYEE
  290. WHERE id=id_em;
  291. IF Employee_Exist IS NOT NULL THEN
  292. BEGIN
  293. SELECT FIO INTO Employee_Fio_Exist FROM EMPLOYEE WHERE FIO=Fio_em;
  294. Raise Fio_Already_Exist;
  295. EXCEPTION
  296. WHEN NO_DATA_FOUND THEN
  297. BEGIN
  298. UPDATE EMPLOYEE SET FIO=Fio_em,Age=Age_em,Email=Email_em,
  299. Phone=Phone_em,NameUser=NameUser_em WHERE Id=Id_em;
  300. commit;
  301. END;
  302. WHEN Fio_Already_Exist THEN
  303. BEGIN
  304. DBMS_OUTPUT.PUT_LINE('Задайте другую фамилию');
  305. RAISE_APPLICATION_ERROR(-20001,'Пользователь с такой фамилией уже существует!');
  306. END;    
  307. END;
  308. ELSE RAISE_APPLICATION_ERROR(-20001,'ПОЛЬЗОВАТЕЛЯ С ТАКИМ ID НЕ СУЩЕСТВУЕТ!');
  309. END IF;
  310. END;
  311. END EmployeePackage;
  312.  
  313. BEGIN
  314. EmployeePackage.Add_New_Employee('Чугунов Денис',89650713330,'kolobok@gmail.com',18,'NameUser');
  315. END;
  316.  
  317. CREATE  SEQUENCE ID_ENT_SEQ  
  318. MINVALUE 1
  319. MAXVALUE 100
  320. INCREMENT BY 1
  321. START WITH 12
  322. NOCACHE
  323. NOORDER
  324. NOCYCLE;
  325.  
  326. DROP SEQUENCE ID_ENT_SEQ;
  327.  
  328.  
  329.  
  330. CREATE OR REPLACE TRIGGER Trigger_Employee
  331. BEFORE INSERT OR UPDATE ON Employee
  332. FOR EACH ROW
  333. BEGIN
  334. IF(INSERTING) THEN
  335. SELECT ID_EMP_SEQ.NEXTVAL
  336. INTO   :NEW.ID
  337. FROM   dual;
  338. ELSIF(UPDATING AND :NEW.ID IS NULL) THEN
  339. SELECT ID_EMP_SEQ.NEXTVAL
  340. INTO   :NEW.ID
  341. FROM   dual;
  342. END IF;
  343. END;
  344.  
  345. CREATE OR REPLACE TRIGGER Trigger_Enterprise
  346. BEFORE INSERT OR UPDATE ON ENTERPRISE
  347. FOR EACH ROW
  348. BEGIN
  349. IF(INSERTING) THEN
  350. SELECT ID_ENT_SEQ.NEXTVAL
  351. INTO   :NEW.ID
  352. FROM   dual;
  353. ELSIF(UPDATING AND :NEW.ID IS NULL) THEN
  354. SELECT ID_ENT_SEQ.NEXTVAL
  355. INTO   :NEW.ID
  356. FROM   dual;
  357. END IF;
  358. END;
  359.  
  360.  
  361.  
  362. ALTER TRIGGER Trigger_Enterprise Enable;
  363. ALTER TRIGGER Trigger_Employee Enable;
  364. INSERT INTO ENTERPRISE (Name,Phone,NameUser) VALUES ('opencode',11111,'NameUser');
  365. INSERT INTO Employee(FIO,PHONE,EMAIL,AGE,NAMEUSER) VALUES ('Габру Пав Евгеньевич',89650738240,'misefealaska@gmail.com',21,'Pablo');
  366.  
  367. CREATE  SEQUENCE Spec  
  368. MINVALUE 1
  369. MAXVALUE 100
  370. INCREMENT BY 1
  371. START WITH 8
  372. NOCACHE
  373. NOORDER
  374. NOCYCLE;
  375. CREATE OR REPLACE TRIGGER Trigger_Spec
  376. BEFORE INSERT OR UPDATE ON Speciality
  377. FOR EACH ROW
  378. BEGIN
  379. IF(INSERTING) THEN
  380. SELECT Spec.NEXTVAL
  381. INTO   :NEW.ID
  382. FROM   dual;
  383. ELSIF(UPDATING AND :NEW.ID IS NULL) THEN
  384. SELECT Spec.NEXTVAL
  385. INTO   :NEW.ID
  386. FROM   dual;
  387. END IF;
  388. END;
  389. INSERT INTO Speciality(Name,NameUser) VALUES('Cleaning','NameUser');
  390.  
  391. CREATE TABLE EMPLOYEE_CHANGE
  392. (CHANGE_NAME VARCHAR2(30),
  393.  CHANGE_DATA DATE
  394. );
  395.  
  396. CREATE OR REPLACE TRIGGER TRIGGER_AUDIT
  397. AFTER INSERT OR UPDATE OR DELETE ON EMPLOYEE
  398. FOR EACH ROW
  399. BEGIN
  400. IF (INSERTING)THEN
  401. INSERT INTO EMPLOYEE_CHANGE VALUES('INSERT',SYSDATE);
  402. ELSIF(UPDATING)THEN
  403. INSERT INTO EMPLOYEE_CHANGE VALUES ('UPDATE',SYSDATE);
  404. ELSIF (DELETING) THEN
  405. INSERT INTO EMPLOYEE_CHANGE VALUES ('DELETE',SYSDATE);
  406. END IF;
  407. END;
  408.  
  409.  
  410. CREATE OR REPLACE TRIGGER TRIGGER_EMPLOYEE
  411. BEFORE INSERT OR UPDATE ON EMPLOYEE
  412. FOR EACH ROW
  413. DECLARE
  414. FIO_ALREADY_EXIST EXCEPTION;
  415. EMPLOYEE_EXIST VARCHAR2(30);
  416. EMPLOYEE_FIO_EXIST VARCHAR(30);
  417. BEGIN
  418. SELECT FIO INTO EMPLOYEE_FIO_EXIST FROM EMPLOYEE
  419. WHERE FIO = :NEW.FIO AND ROWNUM = 1;
  420. RAISE FIO_ALREADY_EXIST;
  421. EXCEPTION
  422.  WHEN NO_DATA_FOUND THEN
  423.  BEGIN
  424. IF (INSERTING) THEN
  425. SELECT ID_EMP_SEQ.NEXTVAL
  426. INTO :NEW.ID
  427. FROM DUAL;
  428. ELSIF (UPDATING AND :NEW.ID IS NULL) THEN
  429. SELECT ID_EMP_SEQ.NEXTVAL
  430. INTO :NEW.ID
  431. FROM DUAL;
  432. END IF;
  433. END;
  434. WHEN FIO_ALREADY_EXIST THEN
  435. BEGIN
  436. DBMS_OUTPUT.PUT_LINE('Придумайте другую фамилию');
  437. RAISE_APPLICATION_ERROR (-20001,'Пользователь с такой фамилией уже существует');
  438. END;
  439. END;
  440.  
  441. INSERT INTO Resume VALUES (1,5,11,'11-03-17','Pic');
  442. INSERT INTO Speciality (Name,NameUser) VALUES ('Monster','NewUser');
  443.  
  444. CREATE OR REPLACE TRIGGER TrigSpec
  445. BEFORE INSERT ON Speciality
  446. FOR each ROW
  447. BEGIN
  448. SELECT Spec.NEXTVAL
  449. INTO   :NEW.ID
  450. FROM   dual;
  451. END;
  452.  
  453. INSERT INTO SPECIALITY (Name,NameUser)VALUES('MonstrTraki','NEWUSER');
  454.  
  455. CREATE OR REPLACE TRIGGER ViewTrigger
  456. Instead OF UPDATE ON SecondView
  457. FOR each ROW
  458. BEGIN
  459. INSERT INTO Vacancy VALUE(7,11,30000,3,3,'PHP-developer','pic');
  460. END;
  461.  
  462. CREATE USER pasha IDENTIFIED BY pasha
  463. DEFAULT TABLESPACE SYSTEM
  464. TEMPORARY TABLESPACE TEMP;
  465.  
  466. GRANT CREATE SESSION TO pasha;
  467.  
  468. GRANT SELECT ON EMPLYEEVIEW TO pasha;
  469. GRANT SELECT ON ENTERPRISEVIEW TO pasha;
  470. GRANT SELECT ON SPECIALITYVIEW TO pasha;
  471. GRANT SELECT ON VACANCYVIEW TO pasha;
  472. GRANT SELECT ON RESUMEVIEW TO pasha;
  473. GRANT SELECT ON FIRSTVIEW TO pasha;
  474. GRANT SELECT ON SECONDVIEW TO pasha;
  475. GRANT SELECT ON THIRDVIEW TO pasha;
  476. GRANT SELECT ON FOURTHVIEW TO pasha;
  477.  
  478. GRANT EXECUTE ON EMPLOYEEPACKAGE TO pasha;
  479.  
  480. CONNECT pasha/pasha;
  481. SELECT * FROM NEWUSER.EMPLYEEVIEW;
  482. CONNECT pasha/pasha;
  483. EXECUTE NEWUSER.EMPLOYEEPACKAGE.ADD_NEW_EMPLOYEE('Харитонов Ярослав',896507234130,'obok@gmail.com',28,'NameUser');
  484.  
  485. GRANT SELECT ON EMPLOYEE TO pasha;
  486. GRANT SELECT ON ENTERPRISE TO pasha;
  487. GRANT SELECT ON RESUME TO pasha;
  488. GRANT SELECT ON VACANCY TO pasha;
  489. GRANT SELECT ON SPECIALITY TO pasha;
  490.  
  491. GRANT INSERT ON EMPLOYEE TO pasha;
  492. GRANT INSERT ON ENTERPRISE TO pasha;
  493. GRANT INSERT ON RESUME TO pasha;
  494. GRANT INSERT ON VACANCY TO pasha;
  495. GRANT INSERT ON SPECIALITY TO pasha;
  496.  
  497. GRANT UPDATE ON EMPLOYEE TO pasha;
  498. GRANT UPDATE ON ENTERPRISE TO pasha;
  499. GRANT UPDATE ON RESUME TO pasha;
  500. GRANT UPDATE ON VACANCY TO pasha;
  501. GRANT UPDATE ON SPECIALITY TO pasha;
  502.  
  503. GRANT DELETE ON EMPLOYEE TO pasha;
  504. GRANT DELETE ON ENTERPRISE TO pasha;
  505. GRANT DELETE ON RESUME TO pasha;
  506. GRANT DELETE ON VACANCY TO pasha;
  507. GRANT DELETE ON SPECIALITY TO pasha;
  508.  
  509. INSERT INTO NEWUSER.EMPLOYEE VALUES(20,'Абдулов Алексей Геннадьевич',896507234130,'obok@gmail.com',28,'NameUser');
  510.  
  511. CONNECT NewUser/NewUser;
  512.  
  513.  
  514. REVOKE SELECT ON EMPLYEEVIEW FROM pasha;
  515. REVOKE SELECT ON ENTERPRISEVIEW FROM  pasha;
  516. REVOKE SELECT ON SPECIALITYVIEW FROM  pasha;
  517. REVOKE SELECT ON VACANCYVIEW FROM  pasha;
  518. REVOKE SELECT ON RESUMEVIEW FROM  pasha;
  519. REVOKE SELECT ON FIRSTVIEW FROM  pasha;
  520. REVOKE SELECT ON SECONDVIEW FROM  pasha;
  521. REVOKE SELECT ON THIRDVIEW FROM  pasha;
  522. REVOKE SELECT ON FOURTHVIEW FROM  pasha;
  523.  
  524. REVOKE SELECT ON EMPLOYEE FROM pasha;
  525. REVOKE SELECT ON ENTERPRISE FROM pasha;
  526. REVOKE SELECT ON RESUME FROM pasha;
  527. REVOKE SELECT ON VACANCY FROM pasha;
  528. REVOKE SELECT ON SPECIALITY FROM pasha;
  529.  
  530. REVOKE INSERT ON EMPLOYEE FROM pasha;
  531. REVOKE INSERT ON ENTERPRISE FROM pasha;
  532. REVOKE INSERT ON RESUME FROM pasha;
  533. REVOKE INSERT ON VACANCY FROM pasha;
  534. REVOKE INSERT ON SPECIALITY FROM pasha;
  535.  
  536. REVOKE DELETE ON EMPLOYEE FROM pasha;
  537. REVOKE DELETE ON ENTERPRISE FROM pasha;
  538. REVOKE DELETE ON RESUME FROM pasha;
  539. REVOKE DELETE ON VACANCY FROM pasha;
  540. REVOKE DELETE ON SPECIALITY FROM pasha;
  541.  
  542. REVOKE UPDATE ON EMPLOYEE FROM pasha;
  543. REVOKE UPDATE ON ENTERPRISE FROM pasha;
  544. REVOKE UPDATE ON RESUME FROM pasha;
  545. REVOKE UPDATE ON VACANCY FROM pasha;
  546. REVOKE UPDATE ON SPECIALITY FROM pasha;
  547.  
  548. disconnect NewUser;
  549. CONNECT pasha/pasha;
  550. SELECT * FROM NEWUSER.EMPLOYEE;
  551. SELECT * FROM NEWUSER.ENTERPRISEVIEW;
  552. INSERT INTO NEWUSER.EMPLOYEE VALUES (21,'Афиногенов Петр Ильич',896507234130,'obok@gmail.com',28,'NameUser');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement