Oracle APEX 5 ITEM значение - PullRequest
0 голосов
/ 08 мая 2020

Возможно получить значение элемента Oracle APEX 5 внутри SQL Developer?

Я знаю, что можно использовать что-то вроде этого:

SELECT * 
FROM apex_050100.wwv_flow_data d
inner join apex_050100.wwv_flow_sessions$ s on d.flow_instance = s.id;
where d.flow_instance = <session_id_from_url>;

Но я хочу для использования функции V:

select v('ITEM') FROM DUAL;

Или, конечно, лучше установить значение этого элемента следующим образом:

APEX_UTIL.SET_SESSION_STATE (
    p_name     IN    VARCHAR2 DEFAULT NULL,
    p_value    IN    VARCHAR2 DEFAULT NULL);

1 Ответ

1 голос
/ 08 мая 2020

Вы должны использовать переменные связывания вместо функции v. Вместо этого:

select *
from table 
where column = v('PX_ITEM_NAME');

Вместо этого:

select *
from table 
where column = :PX_ITEM_NAME;

Это безопаснее (не уязвимо для SQL инъекции), более производительно (избегает жесткого синтаксического анализа и использует общие курсоры) , и более удобно тем, что вы можете скопировать это в SQL Developer.

Когда вы запустите это в SQL Developer, вам будет предложено ввести значения перед выполнением запроса.

...