Advertisement
Guest User

paco_say_it_2

a guest
Nov 26th, 2014
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.60 KB | None | 0 0
  1.  
  2.  
  3. --------------------------------------------------------
  4. -- DDL for Table BONUS
  5. --------------------------------------------------------
  6.  
  7. CREATE TABLE "BONUS" (
  8. "ENAME" VARCHAR2(50 BYTE),
  9. "JOB" VARCHAR2(20 BYTE),
  10. "SAL" NUMBER,
  11. "COMM" NUMBER
  12. );
  13.  
  14. --------------------------------------------------------
  15. -- DDL for Table DEPT
  16. --------------------------------------------------------
  17.  
  18. CREATE TABLE "DEPT" (
  19. "DEPTNO" NUMBER(10,0),
  20. "DNAME" VARCHAR2(100 BYTE),
  21. "LOC" VARCHAR2(100 BYTE)
  22. );
  23.  
  24. --------------------------------------------------------
  25. -- DDL for Table EMP
  26. --------------------------------------------------------
  27.  
  28. CREATE TABLE "EMP" (
  29. "EMPNO" NUMBER(10,0),
  30. "ENAME" VARCHAR2(50 BYTE),
  31. "JOB" VARCHAR2(20 BYTE),
  32. "MGR" NUMBER(10,0),
  33. "HIREDATE" DATE,
  34. "SAL" NUMBER(7,2),
  35. "COMM" NUMBER(7,2),
  36. "DEPTNO" NUMBER(10,0)
  37. );
  38.  
  39. --------------------------------------------------------
  40. -- DDL for Table SALGRADE
  41. --------------------------------------------------------
  42.  
  43. CREATE TABLE "SALGRADE" (
  44. "GRADE" NUMBER,
  45. "LOSAL" NUMBER,
  46. "HISAL" NUMBER
  47. );
  48.  
  49.  
  50.  
  51. --------------------------------------------------------
  52. -- DML for inserting into BONUS
  53. --------------------------------------------------------
  54.  
  55. --------------------------------------------------------
  56. -- DML for inserting into DEPT
  57. --------------------------------------------------------
  58.  
  59. Insert into DEPT (DEPTNO,DNAME,LOC) values ('10','ACCOUNTING','NEW YORK');
  60. Insert into DEPT (DEPTNO,DNAME,LOC) values ('20','RESEARCH','DALLAS');
  61. Insert into DEPT (DEPTNO,DNAME,LOC) values ('30','SALES','CHICAGO');
  62. Insert into DEPT (DEPTNO,DNAME,LOC) values ('40','OPERATIONS','BOSTON');
  63.  
  64. --------------------------------------------------------
  65. -- DML for inserting into EMP
  66. --------------------------------------------------------
  67.  
  68. Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7369','SMITH','CLERK','7902',to_date('17/12/80','DD/MM/RR'),'800',null,'20');
  69. Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7499','ALLEN','SALESMAN','7698',to_date('20/02/81','DD/MM/RR'),'1600','300','30');
  70. Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7521','WARD','SALESMAN','7698',to_date('22/02/81','DD/MM/RR'),'1250','500','30');
  71. Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7566','JONES','MANAGER','7839',to_date('02/04/81','DD/MM/RR'),'2975',null,'20');
  72. Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7654','MARTIN','SALESMAN','7698',to_date('28/09/81','DD/MM/RR'),'1250','1400','30');
  73. Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7698','BLAKE','MANAGER','7839',to_date('01/05/81','DD/MM/RR'),'2850',null,'30');
  74. Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7782','CLARK','MANAGER','7839',to_date('09/06/81','DD/MM/RR'),'2450',null,'10');
  75. Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7788','SCOTT','ANALYST','7566',to_date('19/04/87','DD/MM/RR'),'3000',null,'20');
  76. Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7839','KING','PRESIDENT',null,to_date('17/11/81','DD/MM/RR'),'5000',null,'10');
  77. Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7844','TURNER','SALESMAN','7698',to_date('08/09/81','DD/MM/RR'),'1500','0','30');
  78. Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7876','ADAMS','CLERK','7788',to_date('23/05/87','DD/MM/RR'),'1100',null,'20');
  79. Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7900','JAMES','CLERK','7698',to_date('03/12/81','DD/MM/RR'),'950',null,'30');
  80. Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7902','FORD','ANALYST','7566',to_date('03/12/81','DD/MM/RR'),'3000',null,'20');
  81. Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7934','MILLER','CLERK','7782',to_date('23/01/82','DD/MM/RR'),'1300',null,'10');
  82.  
  83. --------------------------------------------------------
  84. -- DML for inserting into SALGRADE
  85. --------------------------------------------------------
  86.  
  87. Insert into SALGRADE (GRADE,LOSAL,HISAL) values ('1','700','1200');
  88. Insert into SALGRADE (GRADE,LOSAL,HISAL) values ('2','1201','1400');
  89. Insert into SALGRADE (GRADE,LOSAL,HISAL) values ('3','1401','2000');
  90. Insert into SALGRADE (GRADE,LOSAL,HISAL) values ('4','2001','3000');
  91. Insert into SALGRADE (GRADE,LOSAL,HISAL) values ('5','3001','9999');
  92.  
  93. --------------------------------------------------------
  94. -- DDL for Index PK_DEPT
  95. --------------------------------------------------------
  96.  
  97. CREATE UNIQUE INDEX "PK_DEPT" ON "DEPT" ("DEPTNO");
  98.  
  99. --------------------------------------------------------
  100. -- DDL for Index PK_EMP
  101. --------------------------------------------------------
  102.  
  103. CREATE UNIQUE INDEX "PK_EMP" ON "EMP" ("EMPNO");
  104.  
  105. --------------------------------------------------------
  106. -- Constraints for Table DEPT
  107. --------------------------------------------------------
  108.  
  109. ALTER TABLE "DEPT" ADD CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO");
  110.  
  111. --------------------------------------------------------
  112. -- Constraints for Table EMP
  113. --------------------------------------------------------
  114.  
  115. ALTER TABLE "EMP" ADD CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO");
  116.  
  117.  
  118. --------------------------------------------------------
  119. -- Ref Constraints for Table EMP
  120. --------------------------------------------------------
  121.  
  122. ALTER TABLE "EMP" ADD CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO")
  123. REFERENCES "DEPT" ("DEPTNO") ENABLE;
  124.  
  125.  
  126.  
  127.  
  128.  
  129. --Transaccion 1.1
  130.  
  131. insert into DEPT values (50,'HHRR','LOS ANGELES');
  132. SELECT * FROM DEPT WHERE deptno = '50'; -- Se recupera una fila
  133. rollback;
  134. SELECT * FROM DEPT WHERE deptno = '50'; -- No se ha recuperado ninguna fila
  135.  
  136. --Transacion 1.2
  137.  
  138. insert into DEPT values (50,'HHRR','LOS ANGELES');
  139. SELECT * FROM DEPT WHERE deptno = '50'; -- Se recupera una fila
  140. commit;
  141. SELECT * FROM DEPT WHERE deptno = '50'; -- Confirmamos que la fila ha sido insertada;
  142.  
  143. --Transacion 1.3
  144.  
  145. insert into EMP (empno,ename,job) values ('8001','JULIAN', 'CONSULTANT');
  146. update EMP set MGR = 7839, HIREDATE = to_date('20/10/13','dd/mm/rr') , SAL = 3500, COMM = 0, DEPTNO = 50 where EMPNO = 8001;
  147. select * FROM EMP WHERE EMPNO = '8001'; -- Se recupera una fila
  148. savepoint sp1; -- Creamos el punto de guardado sp1
  149. update EMP set MGR = 7369, HIREDATE = to_date('20/10/13','dd/mm/rr') , SAL = 3500, COMM = null, DEPTNO = 40 where EMPNO = 8001;
  150. select * FROM EMP WHERE EMPNO = '8001'; -- Se recupera una fila. Los datos han cambiado
  151. rollback to sp1; -- Deshacemos la transaccion
  152. select * FROM EMP WHERE EMPNO = '8001'; -- Se recupera una fila. Tenemos los datos inicialmente modificados.
  153. commit;
  154. select * FROM EMP WHERE EMPNO = '8001'; -- Se recupera una fila. Datos correctos.
  155.  
  156. --Transaccion 2.1
  157.  
  158. insert into DEPT values (60,'RRHH','NIU YOR');
  159. select * from dept where deptno = 60; -- Se recupera una fila
  160. savepoint sp1; -- Creamos punto de guardado sp2
  161. insert into emp (empno,ename,job,deptno) values (9061,'MOHAMED','TERRORISTA_JUNIOR',60);
  162. insert into emp (empno,ename,job,deptno) values (9062,'XIN LAO','YAKUZA_VETERANO',60);
  163. insert into DEPT values (70,'CALENTADOR_DE_ENSALADAS','COREA_VIEJA');
  164. select * from EMP where deptno = 60; -- Se recuperan dos filas
  165. select * from dept where deptno = 70; -- Se recupera una fila
  166. savepoint sp2; -- Creamos punto de guardado sp2
  167. insert into emp (empno,ename,job,deptno) values (9071,'GIUSSEPE','FERIANTE',70);
  168. insert into emp (empno,ename,job,deptno) values (9071,'HERMANO_DE_GIUSSEPE','CHICO BALA',70); -- FALLO. Ya existe la clave primaria.
  169. select * from EMP where deptno = 70; -- Se recupera una fila
  170. rollback to sp2; -- Volvemos al punto de guardado sp2
  171. select * from EMP where deptno = 70; -- NO se recupera ninguna fila
  172. insert into emp (empno,ename,job,deptno) values (9071,'LUIS ALBERTO','MALABARISTA',70);
  173. select * from EMP where deptno = 70; -- Se recupera una fila
  174. rollback to sp1; -- Volvemos al punto de guardado sp1
  175. select * from dept where deptno = 70; -- NO se recupera ninguna fila
  176. select * from dept where deptno = 60; -- Se recupera una fila
  177. select * from emp where deptno = 60; -- NO se recupera ninguna fila
  178. select * from emp where deptno = 70; -- NO se recupera ninguna fila
  179. insert into emp (empno,ename,job,deptno) values (9071,'ALBERTO','BOLLICADOS',70); -- FALLO. No existe la clave ajena.
  180. select * from emp where deptno = 70; -- NO se recupera ninguna fila
  181. commit;
  182. select * from dept where deptno = 70; -- NO se recupera ninguna fila
  183. select * from dept where deptno = 60; -- Se recupera una fila
  184. select * from emp where deptno = 60; -- NO se recupera ninguna fila
  185. select * from emp where deptno = 70; -- NO se recupera ninguna fila. Datos correctos.
  186.  
  187. --Transaccion 3.1
  188.  
  189. SET TRANSACTION ISOLATION LEVEL READ COMMITTED; |
  190. | SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
  191. INSERT INTO DEPT VALUES (151,'ADVERTISING','CALCUTA'); |
  192. | SELECT count (deptno) FROM DEPT;
  193. SELECT count (deptno) FROM DEPT; |--Contamos 6 TUPLAS.
  194. --Contamos 7 TUPLAS. |
  195. commit; |
  196. | SELECT count (deptno) FROM DEPT;
  197. |--Contamos 7 TUPLAS.
  198. | commit;
  199. | SELECT count (deptno) FROM DEPT;
  200. |--Contamos 7 TUPLAS.
  201.  
  202. --PREGUNTITAS--faltan ambas transacciones
  203.  
  204.  
  205. --Transaccion 3.2
  206.  
  207. SET TRANSACTION ISOLATION LEVEL READ COMMITTED; |
  208. | SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
  209. | SELECT * FROM DEPT WHERE deptno = '151';
  210. | --Se recupera una fila
  211. update DEPT set dname = 'CUIDADO' where deptno = '151'; |
  212. commit; |
  213. |
  214. | SELECT * FROM DEPT WHERE deptno = '151';
  215. |--Se recupera una fila desactualizada.
  216. | commit;
  217. | SELECT * FROM DEPT WHERE deptno = '151';
  218. |--Se recupera una fila actualizada.
  219.  
  220. --PREGUNTITAS--
  221.  
  222. --Transaccion 4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement