Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.10 KB | None | 0 0
  1. A)
  2. set serveroutput on
  3. declare
  4. angajat emp%ROWTYPE;
  5. nume_dept dept.dname%TYPE;
  6. begin
  7. SELECT * INTO angajat FROM emp WHERE ename = '&nume';
  8. SELECT dname INTO nume_dept FROM dept WHERE deptno = angajat.deptno;
  9. dbms_output.put_line(nume_dept);
  10. end;
  11. /
  12.  
  13. B)
  14. declare
  15. nume_dept VARCHAR(20);
  16. begin
  17. SELECT dname INTO nume_dept FROM emp e, dept d WHERE d.deptno = e.deptno AND ename = '&nume';
  18. dbms_output.put_line(nume_dept);
  19. end;
  20.  
  21. C)
  22. declare
  23. angajat emp%ROWTYPE;
  24. begin
  25. SELECT * INTO angajat FROM emp WHERE ename = '&nume';
  26. UPDATE emp SET job = 'EXPERT' WHERE sal > 2800;
  27. end;
  28. /
  29. D)
  30. declare
  31. salariu INT;
  32. begin
  33. SELECT sal INTO salariu FROM emp WHERE ename = '&nume';
  34.  
  35. IF salariu > 3000 THEN
  36. dbms_output.put_line('f bun');
  37. ELSIF salariu > 2500 THEN
  38. dbms_output.put_line('ok');
  39. ELSIF salariu > 2000 THEN
  40. dbms_output.put_line('aproape ok');
  41. ELSE
  42. dbms_output.put_line('nu');
  43. END IF;
  44. end;
  45. /
  46.  
  47. E)
  48. declare
  49. nr INT;
  50. begin
  51. nr := &valoare;
  52. FOR i IN 2..(nr/2) LOOP
  53. IF MOD(nr, i) = 0 THEN
  54. dbms_output.put_line(nr || 'e multiplu de ' || i);
  55. END IF;
  56. END LOOP;
  57.  
  58. end;
  59. /
  60.  
  61. F)
  62. declare
  63. salariu INT;
  64. sal_mediu INT;
  65. begin
  66. SELECT sal INTO salariu FROM emp WHERE ename = 'JAMES';
  67. SELECT AVG(sal) INTO sal_mediu FROM emp WHERE deptno = (SELECT deptno FROM emp WHERE ename = 'JAMES');
  68.  
  69. IF sal_mediu > salariu THEN
  70. UPDATE emp SET sal = sal * 1.5 WHERE ename = 'JAMES';
  71. END IF;
  72. end;
  73. /
  74. H)declare
  75. i number(3) :=0;
  76. a number(6) :=0;
  77. begin
  78.  
  79. while i<=100 loop
  80. dbms_output.put_line('nr:'||i);
  81. i := i + 1;
  82. a := a+i-1;
  83. dbms_output.put_line('suma:'||a);
  84. end loop;
  85. end;
  86. /
  87. nr:100
  88. suma:5050
  89. I)declare
  90. i number(3) :=0;
  91. a number(6) :=0;
  92. begin
  93.  
  94. loop
  95. dbms_output.put_line('nr:'||i);
  96. i := i + 1;
  97. a := a+i-1;
  98. dbms_output.put_line('suma:'||a);
  99. exit when i=101 ;
  100. end loop;
  101. end;
  102. /
  103.  
  104. J)
  105. set serveroutput on;
  106. declare
  107. i VARCHAR(10);
  108. nr VARCHAR(10);
  109. begin
  110. i := '&val';
  111. select REPLACE(i, '8', '0') into nr from DUAL;
  112. dbms_output.put_line('nr:'||nr);
  113. end;
  114. /
  115.  
  116. K)
  117.  
  118. set serveroutput on;
  119. declare
  120. curent INT;
  121. begin
  122. select deptno into curent from dept where rownum < 2 order by deptno desc;
  123. dbms_output.put_line('curent:' || curent);
  124. for i in 1..5 loop
  125. curent := curent + 10;
  126. insert into dept(deptno,dname,loc) values(curent,DBMS_RANDOM.string('x',10),DBMS_RANDOM.string('x',5));
  127. end loop;
  128. end;
  129. /
  130.  
  131. L)
  132. set serveroutput on
  133. declare
  134. i int;
  135. begin
  136. for i in 1..20 loop
  137. if i != 6 and i != 11 and i != 18 then
  138. insert into test(id) values(i);
  139. end if;
  140. end loop;
  141. end;
  142. /
  143.  
  144. M)
  145. declare
  146. sal emp.sal%TYPE;
  147. com emp.comm%TYPE;
  148. nume emp.ename%TYPE;
  149. begin
  150. nume := '&name';
  151. select emp.sal into sal from emp where ename = nume;
  152. select emp.comm into com from emp where ename = nume;
  153. if com is NULL then
  154. dbms_output.put_line('Nu are comision');
  155. elsif sal < 1000 then
  156. update emp set comm = comm + (10/100)*sal where ename = nume;
  157. elsif sal > 1000 and sal < 1500 then
  158. update emp set comm = comm + (15/100)*sal where ename = nume;
  159. elsif sal > 1500 then
  160. update emp set comm = comm + (20/100)*sal where ename = nume;
  161. end if;
  162. end;
  163. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement