powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Получение списка переменных из запроса
9 сообщений из 9, страница 1 из 1
Получение списка переменных из запроса
    #37068997
r-dreamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток,

В следующем куске кода:


Код: 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.
v_query :=
      'SELECT   ''YES'' '
    ||  'FROM apex_application_page_rpt_cols '
    ||  'WHERE page_id = :g_page_id '
    ||  'AND application_id = :g_app_id '
    ||  'AND region_id = TO_NUMBER (LTRIM (:g_region, ''R'')) '
    ||  'AND condition_type = :g_condition ' 
    ||  'AND column_alias = :g_alias ' 
    ||  'AND NOT(' || p_condition_expression1 || ')' ;
   -- open cursor 
   v_cur_hdl := DBMS_SQL.OPEN_CURSOR; 
   -- parse the query
   DBMS_SQL.PARSE(v_cur_hdl,v_query,DBMS_SQL.NATIVE);
   -- Supply binds (bind by name)
   DBMS_SQL.BIND_VARIABLE(v_cur_hdl, 'g_page_id',p_page_id);
   DBMS_SQL.BIND_VARIABLE(v_cur_hdl, 'g_app_id', p_app_id);
   DBMS_SQL.BIND_VARIABLE(v_cur_hdl, 'g_region', p_region);
   DBMS_SQL.BIND_VARIABLE(v_cur_hdl, 'g_condition',v_condition);
   DBMS_SQL.BIND_VARIABLE(v_cur_hdl, 'g_alias',p_column_alias);
   
   DBMS_SQL.BIND_VARIABLE(v_cur_hdl, 'P31_CITY',v('P31_CITY'));
   DBMS_SQL.BIND_VARIABLE(v_cur_hdl, 'P31_RAION',v('P31_RAION'));
   DBMS_SQL.BIND_VARIABLE(v_cur_hdl, 'P31_OBLAST',v('P31_OBLAST'));
   -- Describe defines
   DBMS_SQL.DEFINE_COLUMN(v_cur_hdl,  1 , v_include,  3 );
   -- Execute
   v_rows_processed := DBMS_SQL.EXECUTE(v_cur_hdl);

Есть не совсем красивый момент, там где биндятся P31_CITY, P31_RAION, P31_OBLAST, так как они заточены под определенное приложение. Данные переменные находятся p_condition_expression1, и находится там могут любые переменные не только эти, хотелось бы чтобы код был универсальным под любую возможную переменную в p_condition_expression1.
Вопрос: как получить все переменные из запроса чтобы потом на них можно было забиндить значения из сессии? (подозреваю что в самом апексе есть такой механизм) Много гуглил, но так и не подобрался к мысли приводящей к решению.
...
Рейтинг: 0 / 0
Получение списка переменных из запроса
    #37069093
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r-dreamer,

есть в APEX такой механизм: wwv_flow_utilities.get_binds(). Но мне кажется, Вы делаете какого-то страшного монстра . Зачем Вам динамический SQL и самостоятельная привязка значений переменных, если APEX это и так сделает за Вас в приложении?
...
Рейтинг: 0 / 0
Получение списка переменных из запроса
    #37069126
r-dreamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer,

Это кусок кода из package "Export Excel instead of .csv " by Denes Kubicek http://forums.oracle.com/forums/thread.jspa?threadID=482111
точнее его доработки другим челом http://forums.oracle.com/forums/thread.jspa?threadID=646280
Моего там только три этих бинда с переменным, так как то кто дорабатывал не учел что в условиях скрытия столбцов могут быть переменные.
...
Рейтинг: 0 / 0
Получение списка переменных из запроса
    #37069229
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r-dreamer,

в общем, как-то так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<<prepare binds>>
declare
  l_binds dbms_sql.varchar2_table := wwv_flow_utilities.get_binds(v_query);
begin
  for i in  1 ..l_binds.count
  loop
    DBMS_SQL.BIND_VARIABLE(v_cur_hdl, l_binds(i),v(l_binds(i)));
  end loop;
end prepare_binds;
...
Рейтинг: 0 / 0
Получение списка переменных из запроса
    #37069251
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLerкак-то так

Похожие действия выполняет процедура wwv_flow_utilities.perform_binds, в которую передаются курсор и текст запроса. Правда, при возникновении любого исключения эта процедура выводит системное сообщение об ошибке wwv_flow_utilities.unable_to_bind_err через HTP.P, что не всегда удобно.
...
Рейтинг: 0 / 0
Получение списка переменных из запроса
    #37069346
r-dreamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer,

Спасибо за развернутый ответ! я мог бы сам сделать после того как вы рассказали про wwv_flow_utilities.get_binds(), но далеко не так красиво как у вас получилось

пару почти оффтоп вопросов:
1) Откуда вы узнаете какая функция что делает в wwv_flow_utilities?
2) Есть ли какие нибудь альтернативные готовые решения выгрузки простого репорта из апекса в Excel?
...
Рейтинг: 0 / 0
Получение списка переменных из запроса
    #37069929
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r-dreamer1) Откуда вы узнаете какая функция что делает в wwv_flow_utilities?
2) Есть ли какие нибудь альтернативные готовые решения выгрузки простого репорта из апекса в Excel?

1) Код спецификаций и тел пакетов есть как в БД, так и в sql-скриптах, которыми устанавливается APEX (apex/core/*). Тела пакетов завраплены, но - STFF unwrap .
2) Насчёт готовых и бесплатных одновременно сомневаюсь. Как альтернатива пакету Дэниса, есть возможность работать c POST XML, который возвращается ссылкой для внешней обработки (Report Attributes->External Processing), используя Apache Cocoon, свою обвязку вокруг Jasper Reports, Apache POI, ещё что-нибудь. Можно создать свою процедуру в PL/SQL, в которой получать и обрабатывать этот XML...
...
Рейтинг: 0 / 0
Получение списка переменных из запроса
    #37069967
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot suPPLer]r-dreamer2) Насчёт готовых и бесплатных одновременно сомневаюсь.

Пожалуй, добавлю к теме довольно интересное решение: http://progkor.inf.elte.hu/APEX/README.html
...
Рейтинг: 0 / 0
Получение списка переменных из запроса
    #37069975
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и ещё один готовый вариант для APEX 4: http://www.apex-plugin.com/oracle-apex-plugins/process-type-plugin/ir-report-to-excel-xlsx_74.html
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Получение списка переменных из запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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