Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как получить имя текущей подпрограммы в пакете? / 7 сообщений из 7, страница 1 из 1
10.01.2019, 13:24
    #39757847
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить имя текущей подпрограммы в пакете?
Привет
Subj, не занимаясь такими вещами как парсинг стека и проч?
должно же быть что-то вроде compile-time инъекции?
...
Рейтинг: 0 / 0
10.01.2019, 13:34
    #39757858
Vint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить имя текущей подпрограммы в пакете?
--Eugene--,

dbms_utility.format_call_stack
...
Рейтинг: 0 / 0
10.01.2019, 14:01
    #39757894
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить имя текущей подпрограммы в пакете?
--Eugene--,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  1  create or replace
  2   procedure p_test is
  3   begin
  4    dbms_output.put_line($$PLSQL_UNIT);
  5*  end;
  6  /

Procedure created.

SQL> exec p_test;
P_TEST

PL/SQL procedure successfully completed.

SQL>



....
stax
...
Рейтинг: 0 / 0
10.01.2019, 14:04
    #39757898
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить имя текущей подпрограммы в пакете?
Станислав, внимательно перечитай subj.
...
Рейтинг: 0 / 0
11.01.2019, 10:59
    #39758329
brzl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить имя текущей подпрограммы в пакете?
Код: plsql
1.
2.
3.
4.
function get_proc_name return varchar2 is
begin
    return utl_call_stack.concatenate_subprogram(utl_call_stack.subprogram(2));
end;
...
Рейтинг: 0 / 0
11.01.2019, 12:37
    #39758382
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить имя текущей подпрограммы в пакете?
brzl,

круто! спасибо!
...
Рейтинг: 0 / 0
14.01.2019, 10:59
    #39759217
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить имя текущей подпрограммы в пакете?
brzl,

итересный для меня результат в https://apex.oracle.com/pls/apex/f

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
declare
 function get_proc_name(p_depth pls_integer) return varchar2 is
begin
    return utl_call_stack.concatenate_subprogram(utl_call_stack.subprogram(p_depth));
end;
begin
  for i in 1..20 loop
    dbms_output.put_line(i||' '||get_proc_name(i) );
  end loop;
end;

1 __anonymous_block.GET_PROC_NAME
2 __anonymous_block
3 DBMS_SQL.EXECUTE
4 WWV_FLOW_SW_API.RUN_SQL_ARR
5 WWV_FLOW_SW_API.RUN_SQL
6 WWV_FLOW_SW_PAGE_CALLS.SQL_RESULTS
7 __anonymous_block
8 DBMS_SQL.EXECUTE
9 WWV_FLOW_DYNAMIC_EXEC.RUN_BLOCK5
10 WWV_FLOW_DYNAMIC_EXEC.EXECUTE_PLSQL_CODE
11 WWV_FLOW_REGION_NATIVE.RENDER_PLSQL
12 WWV_FLOW_REGION_NATIVE.RENDER_REGION
13 WWV_FLOW_PLUGIN.RENDER_REGION
14 WWV_FLOW_DISP_PAGE_PLUGS.DISPLAY_PLUG_BODY
15 WWV_FLOW_DISP_PAGE_PLUGS.DISPLAY_PLUG
16 WWV_FLOW_DISP_PAGE_PLUGS.DISPLAY_PAGE_PLUGS
17 WWV_FLOW_PAGE.EMIT_BODY
18 WWV_FLOW_PAGE.RENDER
19 WWV_FLOW.SHOW
20 __anonymous_block

Statement processed.

0.00 seconds



.....
stax
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как получить имя текущей подпрограммы в пакете? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]