Oracle DB, Oracle APEX, Linux etc.

Показаны сообщения с ярлыком tip. Показать все сообщения
Показаны сообщения с ярлыком tip. Показать все сообщения

среда, 12 октября 2011 г.

Oracle: V$SESSION_LONGOPS и несколько одновременных длинных операций

Для того, чтобы отразить в V$SESSION_LONGOPS состояние нескольких одновременных длительных операций - например, общее выполнение процесса и конкретный большой шаг - нужно сохранять значение параметра slno процедуры DBMS_APPLICATION_INFO.set_session_longops. Используя затем пару значений (rindex,slno), можно менять необходимую строку в V$SESSION_LONGOPS. Вот пример работы с двумя длительными операциями:
declare
  first_row pls_integer := dbms_application_info.set_session_longops_nohint;
  second_row pls_integer := dbms_application_info.set_session_longops_nohint;
  slno1 pls_integer;
  slno2 pls_integer;
begin
  dbms_application_info.set_session_longops(rindex => first_row
                                            ,slno => slno1
                                            ,op_name => '1_op'
                                            ,sofar => 1
                                            ,totalwork => 2
                                            ,units => 'step'
                                           );
  dbms_application_info.set_session_longops(rindex => second_row
                                            ,slno => slno2
                                            ,op_name => '2_op'
                                            ,sofar => 1
                                            ,totalwork => 1
                                            ,units => 'step'
                                           );
  dbms_application_info.set_session_longops(rindex => first_row
                                            ,slno => slno1
                                            ,op_name => '1_op'
                                            ,sofar => 2
                                            ,totalwork => 2
                                            ,units => 'step'
                                           );
 
end;
/

select MESSAGE from v$session_longops where (sid,serial#) =
(select sid,serial# from v$session where audsid = USERENV('SESSIONID'));
Тема на SQL.RU: set_session_longops Можно ли вернуться к предидущей строке?
Читать далее

понедельник, 7 февраля 2011 г.

Oracle APEX: Collections Debug

Самый простой, хоть и не очень честный способ отладки при работе с коллекциями APEX - смотреть в таблицы wwv_flow_collections$ и wwv_flow_collection_members$ схемы, в которую установлен APEX. Если, конечно, есть соответствующие права, и известны приложение (FLOW_ID) и сессия (SESSION_ID), работающие с коллекцией.
Читать далее

пятница, 29 октября 2010 г.

Oracle SQL Developer: ORA-12705

Честно говоря, я лично не сталкивался с этой ошибкой. Под Debian GNU/Linux мне достаточно было указать соответствующие NLS-настройки в Tools->Preferences->Database->NLS:


С учётом моей локали, больше ничего не потребовалось.

suppler@dark-place:~$ locale
LANG=ru_UA.UTF-8
LC_CTYPE="ru_UA.UTF-8"
LC_NUMERIC="ru_UA.UTF-8"
LC_TIME="ru_UA.UTF-8"
LC_COLLATE="ru_UA.UTF-8"
LC_MONETARY="ru_UA.UTF-8"
LC_MESSAGES="ru_UA.UTF-8"
LC_PAPER="ru_UA.UTF-8"
LC_NAME="ru_UA.UTF-8"
LC_ADDRESS="ru_UA.UTF-8"
LC_TELEPHONE="ru_UA.UTF-8"
LC_MEASUREMENT="ru_UA.UTF-8"
LC_IDENTIFICATION="ru_UA.UTF-8"
LC_ALL=

Тем не менее, есть один проверенный способ. Необходимо добавить в один из конфигурационных файлов SQL Developer опции с явным указанием языка и страны. Например, в <sqldeveloper_root_dir>/sqldeveloper/bin/sqldeveloper.conf:

AddVMOption -Duser.language=en
AddVMOption -Duser.country=US

Надеюсь, эта заметка вместе с другой сэкономит кое-кому время.
Читать далее