powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как корректно определить из PLSQL, что APEX установлен
5 сообщений из 5, страница 1 из 1
Как корректно определить из PLSQL, что APEX установлен
    #36883056
Lav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно сабж.
Но только есть нюанс. Как определить это так, чтобы это можно было использовать в условной компиляции PLSQL кода, c помощью $if. Так как $if подразумевает использование boolean_static_expression (пруф http://download.oracle.com/docs/cd/E11882_01/appdev.112/e17126/fundamentals.htm#CHDIGDHA )

--
Все что НЕ делается все к лучшему...
...
Рейтинг: 0 / 0
Как корректно определить из PLSQL, что APEX установлен
    #36883775
Фотография Edward Shevtsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lav,

посмотри как сделано в APEXLIB от Патрика Вольфа. По памяти точно не скажу, но там что-то простое либо проверяется начиличие схемы апекс, либо наличие паблик синонима для ключевого объекта апекс. Второе более вероятно.
...
Рейтинг: 0 / 0
Как корректно определить из PLSQL, что APEX установлен
    #36884140
Lav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edward ShevtsovLav,

посмотри как сделано в APEXLIB от Патрика Вольфа. По памяти точно не скажу, но там что-то простое либо проверяется начиличие схемы апекс, либо наличие паблик синонима для ключевого объекта апекс. Второе более вероятно.

Это здорово конечно, но как константой проверить существование синонима или схемы, мне ведь надо использовать это для условной компиляции.
...
Рейтинг: 0 / 0
Как корректно определить из PLSQL, что APEX установлен
    #36891113
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lav,

как-то так:

Код: plaintext
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.
36.
37.
create or replace package test_pkg
as
  procedure p;
end test_pkg;
/

create or replace package body test_pkg
as
  procedure p 
  is
  begin
    $IF $$APEX $THEN
      do_something;
    $ELSE
      null;
    $END
  end; 
end test_pkg;
/

show errors;

declare
  l_apex varchar2( 10 ) := FALSE;
  l_plsql_compiler_flags varchar2( 2000 );
begin
  for cr in (select 'TRUE' s from apex_application_items where rownum =  1 )
  loop
    l_apex := cr.s;
  end loop;

  l_plsql_compiler_flags :=  'APEX:' || l_apex;
  
  execute immediate q'[]alter package test_pkg compile body PLSQL_CCFLAGS=']' || l_plsql_compiler_flags || q'[' reuse settings]';
end;
/

show errors;
...
Рейтинг: 0 / 0
Как корректно определить из PLSQL, что APEX установлен
    #36891115
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLerLav,

как-то так:

Код: plaintext
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.
create or replace package test_pkg
as
  procedure p;
end test_pkg;
/

create or replace package body test_pkg
as
  procedure p 
  is
  begin
    $IF $$APEX $THEN
      do_something;
    $ELSE
      null;
    $END
  end; 
end test_pkg;
/

show errors;

declare
  l_apex varchar2( 10 ) := FALSE;
  l_plsql_compiler_flags varchar2( 2000 );
begin
  for cr in (select 'TRUE' s from apex_application_items where rownum =  1 )
  loop
    l_apex := cr.s;
  end loop;

  l_plsql_compiler_flags :=  'APEX:' || l_apex;
  
  execute immediate q'[alter package test_pkg compile body PLSQL_CCFLAGS=']' || l_plsql_compiler_flags || q'[' reuse settings]';
end;
/


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


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