Guest User

Untitled

a guest
Apr 19th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. Create or replace package body TEST_procedures_pkg as
  2. PROCEDURE TEST_procedures_pkga IS
  3. object_name VARCHAR2(255);
  4.  
  5. CURSOR c1 IS(
  6. select procedure_name
  7. from user_procedures
  8. where object_name = 'PRODCEDURE');
  9. BEGIN
  10. OPEN c1;
  11. LOOP
  12. FETCH c1 INTO object_name;
  13. --
  14. if c1%ISOPEN then
  15. object_name := 9999;
  16. end if;
  17. --
  18.  
  19. DBMS_OUTPUT.PUT_LINE(object_name);
  20. END LOOP;
  21. CLOSE c1;
  22. END;
  23.  
  24.  
  25. end TEST_procedures_pkg;
  26.  
  27. create or replace package TEST_procedures_pkg as
  28. --%Suite
  29. --%test
  30. procedure TEST_procedures_pkga;
  31. --
  32. end TEST_procedures_pkg;
  33.  
  34. create or replace package myProcedures as
  35. procedure execute;
  36. procedure proc1 (inParams varchar2, outParams out nocopy varchar2);
  37. procedure proc2 (inParams varchar2, outParams out nocopy varchar2);
  38. procedure proc3 (inParams varchar2, outParams out nocopy varchar2);
  39. end myProcedures;
  40. /
  41. create or replace package body myProcedures as
  42. procedure execute is
  43. inParams varchar2(32000);
  44. outParams varchar2(32000);
  45. begin
  46. for r in (
  47. select *
  48. from user_procedures
  49. where object_name = upper('myProcedures')
  50. and object_type = 'PACKAGE'
  51. and subprogram_id > 1
  52. order by subprogram_id
  53. ) loop
  54. inParams := lower(r.object_name||'.'||r.procedure_name)||'(objId='||r.object_id||':procId='||r.subprogram_id||')';
  55. execute immediate
  56. 'begin '||
  57. r.object_name||'.'||r.procedure_name||'(:inParams, :outParams);'||
  58. 'end;' using in inParams, out outParams;
  59. dbms_output.put_linΠ΅ (outParams);
  60. end loop;
  61. end execute;
  62. procedure proc1 (inParams varchar2, outParams out nocopy varchar2) is
  63. begin outParams := inParams||' executed ret=0'; end proc1;
  64. procedure proc2 (inParams varchar2, outParams out nocopy varchar2) is
  65. begin outParams := inParams||' executed ret=0'; end proc2;
  66. procedure proc3 (inParams varchar2, outParams out nocopy varchar2) is
  67. begin outParams := inParams||' executed ret=0'; end proc3;
  68. end myProcedures;
  69. /
  70.  
  71. exec myProcedures.execute
  72.  
  73. PL/SQL procedure successfully completed.
  74.  
  75. myprocedures.proc1(objId=178418:procId=2) executed ret=0
  76. myprocedures.proc2(objId=178418:procId=3) executed ret=0
  77. myprocedures.proc3(objId=178418:procId=4) executed ret=0
Add Comment
Please, Sign In to add comment