Advertisement
Guest User

Untitled

a guest
May 4th, 2015
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.80 KB | None | 0 0
  1. declare
  2. type tt_proj is table of projekat%rowtype index by binary_integer;
  3. t_proj tt_proj;
  4. brojac number;
  5. procedure pr(t_proj out tt_proj)
  6. is
  7. i number := 0;
  8. cursor sel_proj
  9. is
  10. select * from projekat;
  11. begin
  12. for v_proj in sel_proj loop
  13. t_proj(i) := v_proj;
  14. i := i+1;
  15. end loop;
  16. end pr;
  17. begin
  18. pr(t_proj);
  19. brojac := t_proj.first;
  20. while brojac <= t_proj.last loop
  21. dbms_output.put_line('SPR: ' || t_proj(brojac).spr || ', NAP: ' || t_proj(brojac).nap);
  22. brojac := t_proj.next(brojac);
  23. end loop;
  24. end;
  25.  
  26. declare
  27. type tt_mbrs is table of radnik.mbr%type index by binary_integer;
  28. type slog is record (
  29. proj projekat%rowtype,
  30. t_mbrs tt_mbrs
  31. );
  32. type tt_projmbrs is table of slog index by binary_integer;
  33. t_projmbrs tt_projmbrs;
  34. br_pr number;
  35. br_mbr number;
  36. procedure pr(t_projmbrs out tt_projmbrs)
  37. is
  38. i number := 0;
  39. j number;
  40. cursor sel_proj
  41. is
  42. select * from projekat;
  43. cursor sel_mbrs(p_spr projekat.spr%type)
  44. is
  45. select mbr from radproj where spr = p_spr;
  46. begin
  47. for v_proj in sel_proj loop
  48. t_projmbrs(i).proj := v_proj;
  49. j := 0;
  50. for v_mbr in sel_mbrs(v_proj.spr) loop
  51. t_projmbrs(i).t_mbrs(j) := v_mbr.mbr;
  52. j := j+1;
  53. end loop;
  54. i := i+1;
  55. end loop;
  56. end pr;
  57. begin
  58. pr(t_projmbrs);
  59. br_pr := t_projmbrs.first;
  60. while br_pr <= t_projmbrs.last loop
  61. dbms_output.put_line('SPR: ' || t_projmbrs(br_pr).proj.spr || ', NAP: ' || t_projmbrs(br_pr).proj.nap);
  62. dbms_output.put_line('MBRS:');
  63. br_mbr := t_projmbrs(br_pr).t_mbrs.first;
  64. while br_mbr <= t_projmbrs(br_pr).t_mbrs.last loop
  65. dbms_output.put_line(chr(9) || t_projmbrs(br_pr).t_mbrs(br_mbr));
  66. br_mbr := t_projmbrs(br_pr).t_mbrs.next(br_mbr);
  67. end loop;
  68. br_pr := t_projmbrs.next(br_pr);
  69. end loop;
  70. end;
  71.  
  72.  
  73. declare
  74. type tt_mbrs is table of radnik.mbr%type index by binary_integer;
  75. type slog is record (
  76. proj projekat%rowtype,
  77. t_mbrs tt_mbrs
  78. );
  79. type tt_projmbrs is table of slog index by binary_integer;
  80. t_projmbrs tt_projmbrs;
  81. br_pr number;
  82. br_mbr number;
  83. function fun
  84. return tt_projmbrs
  85. is
  86. i number := 0;
  87. j number;
  88. cursor sel_proj
  89. is
  90. select * from projekat;
  91. cursor sel_mbrs(p_spr projekat.spr%type)
  92. is
  93. select mbr from radproj where spr = p_spr;
  94. t_projmbrs tt_projmbrs;
  95. begin
  96. for v_proj in sel_proj loop
  97. t_projmbrs(i).proj := v_proj;
  98. j := 0;
  99. for v_mbr in sel_mbrs(v_proj.spr) loop
  100. t_projmbrs(i).t_mbrs(j) := v_mbr.mbr;
  101. j := j+1;
  102. end loop;
  103. i := i+1;
  104. end loop;
  105. return t_projmbrs;
  106. end fun;
  107. begin
  108. t_projmbrs := fun;
  109. br_pr := t_projmbrs.first;
  110. while br_pr <= t_projmbrs.last loop
  111. dbms_output.put_line('SPR: ' || t_projmbrs(br_pr).proj.spr || ', NAP: ' || t_projmbrs(br_pr).proj.nap);
  112. dbms_output.put_line('MBRS:');
  113. br_mbr := t_projmbrs(br_pr).t_mbrs.first;
  114. while br_mbr <= t_projmbrs(br_pr).t_mbrs.last loop
  115. dbms_output.put_line(chr(9) || t_projmbrs(br_pr).t_mbrs(br_mbr));
  116. br_mbr := t_projmbrs(br_pr).t_mbrs.next(br_mbr);
  117. end loop;
  118. br_pr := t_projmbrs.next(br_pr);
  119. end loop;
  120. end;
  121.  
  122. declare
  123. type tt_radnik table of radnik%rowtype index by binary_integer;
  124. t_radnik tt_radnik;
  125. function fun(p_1 varchar, p_2 varchar, p_3 varchar)
  126. return tt_radnik
  127. is
  128. dyn_stm varchar(200) := 'select * from radnik order by ' || p_1 || ', ' || p_2 || ', ' || p_3 || '; ';
  129. t_radnik tt_radnik;
  130. i number := 0;
  131. cursor cur
  132. is
  133. execute immediate dyn_stm;
  134. begin
  135. for v_rad in cur loop
  136. t_radnik(i) := v_rad;
  137. i := i+1;
  138. end loop;
  139. return t_radnik;
  140. end fun;
  141. begin
  142. t_radnik := fun('mbr', 'prz', 'ime');
  143. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement