Oracle APEX - получить рабочее пространство для текущего приложения
Мне нужно имя рабочей области текущего приложения для доступа к RESTful API.
Есть ли какая-нибудь подстановочная строка для этого? Или какой самый простой способ получить имя рабочей области текущего приложения?
4 ответа
Вы можете использовать один из них для идентификации:
Bind variable -> :WORKSPACE_ID
PL/SQL -> V('WORKSPACE_ID')
Substitution string -> &WORKSPACE_ID.
SYS_CONTEXT variable - > SELECT ... WHERE workspace_id = SYS_CONTEXT('APEX$SESSION', 'WORKSPACE_ID')
И чтобы получить имя:
select workspace from apex_workspaces where workspace_id = :WORKSPACE_ID
или же
select workspace from apex_workspaces where workspace_id = SYS_CONTEXT('APEX$SESSION', 'WORKSPACE_ID')
select * from apex_applications
Тебе нужно apex_administrator_role
получить не только текущие схемы приложений.
... И если вы новичок, вы должны знать о последствиях роли администратора.
select workspace
from apex_applications
where 1=1
and application_id = :app_id
Вам не нужно apex_administrator_role
как предлагает другой ответ, если схема синтаксического анализа не назначена текущей рабочей области.
Мы не нашли решения, что не так с apex_applications, поэтому мы использовали обходной путь с apex_040200.wwv_flow_authorized, который работает правильно для нас.