<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1045816305977712294</id><updated>2024-09-17T07:21:33.499+03:00</updated><category term="apex"/><category term="tips"/><category term="news"/><category term="howto"/><category term="translation"/><category term="oracle"/><category term="performance"/><category term="report"/><category term="sqldeveloper"/><category term="app_version"/><category term="debian"/><category term="deploy"/><category term="javascript"/><category term="url"/><category term="certification"/><category term="checkbox"/><category term="compile"/><category term="eclipse"/><category term="firefox"/><category term="forms"/><category term="oracle-client"/><category term="search"/><category term="sql"/><category term="svn"/><category term="tora"/><title type='text'>Записки об Oracle Application Express и не только....</title><subtitle type='html'>Блог посвящен разработке и поддержке приложений, созданных с помощью Oracle Application Express (framework известный так же, как Apex, HTML DB, WebDB)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default?start-index=26&amp;max-results=25'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>43</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-2306084466346898377</id><published>2009-05-29T07:37:00.000+04:00</published><updated>2009-05-29T08:43:54.189+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debian"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle-client"/><title type='text'>Установка Oracle Instant Client в Debian. Ссылка</title><content type='html'>По роду своих занятий, часто приходится работать с Oracle с Debian машин. Как-то я уже немного вскольз рассказывал, как установить Oracle Instant Client (см. &lt;a href=&quot;http://apex-dev.blogspot.com/2008/01/tora-debian.html&quot;&gt;Компиляция TOra в Debian&lt;/a&gt;). &lt;br /&gt;Но сегодня мне подкинули ссылочку на замечательную статью, где описывается аж целых два способа установки Oracle Instant Client. Понравилось: подробно расписано для чего это нужно и как выполнять установку. Рекомендую - &lt;a href=&quot;http://debianworld.ru/articles/ustanovka-oracle-instant-client-v-debian-ubuntu/&quot;&gt;Установка Oracle Instant Client в Debian / Ubuntu &lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/2306084466346898377/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/2306084466346898377' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/2306084466346898377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/2306084466346898377'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2009/05/oracle-instant-client-debian.html' title='Установка Oracle Instant Client в Debian. Ссылка'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-6445816034896071859</id><published>2009-04-24T07:00:00.001+04:00</published><updated>2009-04-24T11:43:07.093+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="url"/><title type='text'>Понимание формата URL в Application Express. Часть 2.</title><content type='html'>Продолжение поста &lt;a href=&quot;http://apex-dev.blogspot.com/2009/04/url-application-express.html&quot;&gt;&quot;Понимание формата URL в Application Express. Часть 1.&quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;b&gt;Вызов страницы, используя синонимы приложения и страницы&lt;/b&gt;&lt;br /&gt;Синоним для приложения или страницы не может содержать пробелов и не чувствительный к регистру. Ниже приведен пример запроса к странице, в котором используются синонимы страницы и приложения. Выполняется запрос к странице &quot;home&quot; приложения &quot;myapp&quot;, используя текущую сессию: &lt;br /&gt;&lt;code&gt;f?p=myapp:home:&amp;APP_SESSION.&lt;/code&gt;&lt;br /&gt;где:&lt;ul&gt;&lt;br /&gt; &lt;li&gt;myapp - синоним для приложения&lt;/li&gt;&lt;br /&gt; &lt;li&gt;home - синоним для страницы&lt;/li&gt;&lt;br /&gt; &lt;li&gt;APP_SESSION - идентифифкатор сессии&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Синоним приложения должен быть уникален в рамках рабочей области (workspace). Если приложения, располагающиеся в разнызх рабочих областях, имеют одинаковые синонимы, необходимо использовать &quot;&amp;c&quot; аргумент, чтобы указать имя рабочей области. Например:&lt;br /&gt;&lt;code&gt;f?p=common_alias:home:&amp;APP_SESSION.&amp;c=WORKSPACE_A&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Использование 0 вместо Session Id&lt;/b&gt; &lt;br /&gt;Если страница APEX-приложения является обще доступной и не требует аутентификации, можно использовать &quot;0&quot; вместо идентификатора сессии.&lt;br /&gt;&lt;br /&gt;При запросе страницы, в URL которой стоит 0 вместо session id, Application Express присваивает новый session id и отсылает его вместе с cookie обратно браузеру.&lt;br /&gt;Таким образом, просматривая обще доступные страницы, можно видеть, что все генерируемые ссылки на обще доступные страницы будут содержать &quot;0&quot; в качестве session id. Однако, на самом деле Application Express будет использовать session id из cookie, чтобы переменные приложения были в актуальном состоянии.&lt;br /&gt;&lt;br /&gt;Эта фича полезна, когда необходимо спрятать настоящий идентификатор сессии (session id). Это бывает полезно как минимум в двух случаях:&lt;ul&gt;&lt;br /&gt;&lt;li&gt; Создание закладок пользователями. Нет необходимости сохранять номер сессии в ссылке закладки. &lt;/li&gt;&lt;br /&gt;&lt;li&gt; Поисковые системы. Номер сессии будет недоступен для ботов поисковых систем. Естевственным следствие этого будет ликвидация дублирования контента в поисковых системах, так как при каждом обращении бота поисковой системы на одну и ту же страницу, будет гарантированно получен один и тот же URL.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;   &lt;br /&gt;&lt;b&gt;Основы строк подстановки (Substitution Strings)&lt;/b&gt;&lt;br /&gt;Строки подстановки можно использовать в шаблонах страниц или в регионах для того, чтобы заменить символьную строку каким-либо значением.&lt;br /&gt;В Application Builder можно использовать строки подстановки следующим образом:&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Ссылки на элементы приложения или страницы. Синтаксис:&lt;code&gt;&amp;ITEM.&lt;/code&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Использовть встроенные строки подстановки (см. &lt;a href=&quot;http://download.oracle.com/docs/cd/E10513_01/doc/appdev.310/e10499/concept.htm#HTMDB03024&quot;&gt;оффициальную документацию&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/6445816034896071859/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/6445816034896071859' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/6445816034896071859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/6445816034896071859'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2009/04/url-application-express-2.html' title='Понимание формата URL в Application Express. Часть 2.'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-4511153179965005315</id><published>2009-04-01T05:55:00.015+04:00</published><updated>2009-04-01T11:09:57.451+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="url"/><title type='text'>Понимание формата URL в Application Express. Часть 1.</title><content type='html'>URL, которые отображаются для каждой страницы, однозначно определяют:&lt;br /&gt;&lt;ul&gt; &lt;li&gt;Адрес Application Express&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Идентификатор приложения (application ID) - уникальное число, однозначно идентифицирующее приложение. Уникален в рамках рабочей области (workspace)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Номер страницы (page number) - число, однозначно идентифицирующее страницу в приложении. Уникально в рамках приложения.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Идентификатор сессии (session ID)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Приложения и страницы могут иметь символьные псевдонимы (alphanumeric aliases).Так же, как и идентификаторы приложений и страниц, псевдоним приложения уникален в рамках рабочей области (workspace), а псевдоним страницы уникален в рамках приложения.&lt;br /&gt;&lt;br /&gt;При запуске приложения Application Express генерирует идентификатор сессии, который является ключем для доступа к значениям переменных приложения.&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;h2&gt;Понимание URL для страниц&lt;/h2&gt;&lt;br /&gt;Все очень просто. Достаточно рассмотреть пример:&lt;code&gt;&lt;br /&gt;http://apex.oracle.com/pls/apex/f?p=4350:1:220883407765693447&lt;br /&gt;&lt;/code&gt;где:&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;i&gt;apex.oracle.com&lt;/i&gt; - адрес сервера&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;i&gt;pls&lt;/i&gt; - признак использования mod_plsql&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;i&gt;apex&lt;/i&gt; - название дескриптора доступа к БД (DAD). DAD описывает, как HTTP-сервер соединяется с сервером БД, чтобы обработать HTTP-запрос. Значение по умолчанию - apex.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;i&gt;f?p=&lt;/i&gt; - префикс, используемый Oracle Application Express&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;i&gt;4350&lt;/i&gt; - вызываемое приложение (application ID)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;i&gt;1&lt;/i&gt; - вызываемая страницы приложения(page number)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;i&gt;220883407765693447&lt;/i&gt; - идентификатор сессии(session ID)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h2&gt;Использование синтаксиса &quot;f?p&quot;&lt;/h2&gt;&lt;br /&gt;Для создания переходов между страницами можно использовать следующий синтаксис:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;    f?p=App:Page:Session:Request:Debug:ClearCache:itemNames:itemValues:PrinterFriendly&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Синтаксис&lt;/th&gt; &lt;th&gt;Описание&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;App&lt;/td&gt;&lt;td&gt;Идентификатор (application ID) или символьный псевдоним (alias) приложения &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;Page&lt;/td&gt;&lt;td&gt;Номер (page number) или символьный псевдоним (alias) страницы &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;Session&lt;/td&gt;&lt;br /&gt;&lt;td&gt;Идентификатор сессии (session ID). Идентификатор сесси имеет смысл указывать в том случае, если создается ссылка на страницу, в которой необходимо использовать  теже переменные, что и в текущей странице. Получить значение идентификатор текущей сессии можно следующими способами:&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Строка подстановки: &quot;&amp;amp;SESSION.&quot;&lt;/li&gt;&lt;li&gt;PL/SQL: &quot;V(&#39;SESSION&#39;)&quot;&lt;/li&gt;&lt;li&gt;Bind переменная: &quot;:APP_SESSION&quot;&lt;/li&gt; &lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;Request&lt;/td&gt;&lt;td&gt;Выставляется при нажатии кнопки на странице приложения. Заполняется именем нажатой кнопки. Получить значение можно следующими способами:&lt;ul&gt;&lt;li&gt;Строка подстановки: &quot;&amp;amp;REQUEST.&quot;&lt;/li&gt;&lt;li&gt;PL/SQL: &quot;V(&#39;REQUEST&#39;)&quot;&lt;/li&gt;&lt;li&gt;Bind переменная: &quot;:REQUEST&quot;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;Debug&lt;/td&gt;&lt;td&gt;Отвечает за вывод отладочной информации при обработке страницы. Допустимые значения: &quot;NO&quot;, &quot;YES&quot;. Получить значение можно следующими способами:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Строка подстановки: &quot;&amp;amp;DEBUG.&quot;&lt;/li&gt;&lt;li&gt;PL/SQL: &quot;V(&#39;DEBUG&#39;)&quot;&lt;/li&gt;&lt;li&gt;Bind переменная: &quot;:DEBUG&quot;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;ClearCache&lt;/td&gt;&lt;td&gt;Очищает кэш. Выставляет значение указанных переменных в NULL. Пример: &lt;code&gt;f?p=100:5:&amp;amp;APP_SESSION.::NO:THE_EMPNO,THE_DEPTNO&lt;/code&gt; Очищает кэш переменных THE_EMPNO и THE_DEPTNO.&lt;br /&gt;Ключевое слово &quot;RP&quot; вызывает сброс навигации (region pagination) на странице. Например:&lt;br /&gt;&lt;code&gt;f?p=6000:6003:&amp;amp;APP_SESSION.::NO:RP,6004,6014&lt;/code&gt;&lt;br /&gt;Очищает состояние всех переменных на страницах 6004 и 6014. Сбрасывает состояние навигации (region pagination -RP) на странице 6003.&lt;br /&gt;Ключевое слово &quot;APP&quot; вызывает сброс кэша во всем приложении.&lt;br /&gt;Ключевое слово &quot;SESSION&quot; работает аналогично ключевому слову &quot;APP&quot;, за исключением того, что очищает значение переменных, связанных со всеми приложениями, которые были использованы в рамках заданной сессии.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;itemNames&lt;/td&gt;&lt;td&gt;Список переменных через запятую, для которых необходимо выставить значение.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;itemValues&lt;/td&gt;&lt;td&gt;Список значений переменных через запятую. Не допустимо использование двоеточия (:) в качестве значения. Допустимо использование запятой в качестве значения, если значение заключено в обратные слеши (\123,45\).&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;PrinterFriendly&lt;/td&gt;&lt;td&gt;Определяет, будет ли страница выведена в режиме &quot;на печать&quot; (значение - &quot;Yes&quot;). Может быть использовано для условного вывода того или иного элемента страницы при выводе на печать. Получить значение можно следующими способом: V(&#39;PRINTER_FRIENDLY&#39;).&lt;br /&gt;Если задано, то Application Express не будет отображать закладки или навигационные области. Кроме того, все элементы форм будут выводиться как текстовые поля.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Продолжение следует...&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/4511153179965005315/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/4511153179965005315' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/4511153179965005315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/4511153179965005315'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2009/04/url-application-express.html' title='Понимание формата URL в Application Express. Часть 1.'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-8521786486527626898</id><published>2008-08-01T06:54:00.000+04:00</published><updated>2008-08-01T12:15:18.239+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="tips"/><title type='text'>Недокументированная опция для статических LOV</title><content type='html'>Согласно документации, статический список значений (STATIC, STATIC2) определяется следующим образом:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;STATIC[2]:Display Value[;Return Value],Display Value[;Return Value]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;То есть, получается, чтобы вывести &lt;b&gt;Display Value&lt;/b&gt; в котором содержалась бы запятая - невозможно. Однако, как выяснилось, это не совсем так... &lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Оказывается для STATIC, STATIC2 есть недокументированная опция! (Спасибо за это &lt;a href=&quot;http://www.inside-oracle-apex.com/2008/04/undocumented-option-for-static-list-of.html&quot;&gt;Patrick Wolf&lt;/a&gt;). Недокументированная опция выглядит следующим образом:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;STATIC[2](lov-entries-sep,display-return-sep):Display Value[&lt;display-return-sep&gt;Return Value]&lt;lov-entries-sep&gt;Display Value[&lt;display-return-sep&gt;Return Value]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;То есть, чтобы вывести &lt;b&gt;Display Value&lt;/b&gt; с запятой, можно, например, определить LOV следующим образом:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;STATIC2(;,=):Показывать, но не учитывать=1; Учытвать, но не показывать=2;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/8521786486527626898/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/8521786486527626898' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/8521786486527626898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/8521786486527626898'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2008/08/lov.html' title='Недокументированная опция для статических LOV'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-1812559831434048401</id><published>2008-02-28T06:28:00.000+03:00</published><updated>2008-02-28T11:38:25.007+03:00</updated><title type='text'>apex.oracle.com обновился до версии 3.1</title><content type='html'>Официальный общедоступный &lt;a href=&quot;http://apex.oracle.com/&quot;&gt;тестовый инстанс Oracle Application Express&lt;/a&gt; был обновлен до версии 3.1. Очевидно, что скоро новая версия Apex будет доступна для загрузки.&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt; Те,кто не подписывался на пробную версию Apex 3.1 (evaluation version) или ничего еще не читал, то с новыми фичами можно ознакомиться в статье &lt;a href=&quot;http://www.oracle.com/technology/products/database/application_express/html/3.1_new_features.html&quot;&gt;&quot;Release 3.1 New Features Sample Application&quot;&lt;/a&gt;. &lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/1812559831434048401/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/1812559831434048401' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/1812559831434048401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/1812559831434048401'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2008/02/apexoraclecom-31.html' title='apex.oracle.com обновился до версии 3.1'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-8863621313179798027</id><published>2008-01-16T23:18:00.001+03:00</published><updated>2008-03-25T11:19:47.300+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="compile"/><category scheme="http://www.blogger.com/atom/ns#" term="debian"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="tora"/><title type='text'>Компиляция TOra в Debian</title><content type='html'>&lt;a href=&quot;http://tora.sourceforge.net/&quot;&gt;TOra&lt;/a&gt; - расшифровывается как &quot;Toolkit For Oracle&quot; и представляет из себя IDE для таких СУБД как Oracle, MySQL, PostgreSQL. На данный момент является одной из трех полноценных Oracle IDE под Linux (остальные две - это &quot;SQL Developer&quot; от Oracle и &quot;Aqua Data Studio&quot; от AquaFold). Концептуальное отличие - язык программирования исходного кода: &quot;SQL Developer&quot;, &quot;Aqua Data Studio&quot; - Java, &quot;TOra&quot; - C++.&lt;br /&gt;&lt;br /&gt;На днях пришлось собирать ее из исходных кодов, так как по лицензионным причинам, в стандартной сборке TOra из репозитария Debian GNU/Linux не включена поддержка Oracle.&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt; &lt;br /&gt;Все работы велись в Debian Lenny:&lt;br /&gt;&lt;code&gt; $ uname -a&lt;br /&gt;Linux Debian4Test 2.6.22-3-686 #1 SMP Mon Nov 12 08:32:57 UTC 2007 i686 GNU/Linux&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Версия TOra: &lt;code&gt;&lt;br /&gt;$ ls -l /usr/src/tora-1.3.22/&lt;br /&gt;-rw-r--r--  1 root src  3496227 2008-01-15 18:19 tora-1.3.22.tar.gz&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Итак... поехали...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Получение Oracle Instant Client&lt;/b&gt;&lt;/li&gt;Скачиваем следующие пакеты:&lt;ul&gt;&lt;br /&gt;       &lt;li&gt;&lt;a href=&quot;http://www.michelem.org/wp-content/tora-oracle/oracle-instantclient-basiclite_10.2.0.3-2_i386.deb&quot;&gt; oracle-instantclient-basiclite_10.2.0.3-2_i386.deb&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;       &lt;li&gt; &lt;a href=&quot;http://www.michelem.org/wp-content/tora-oracle/oracle-instantclient-devel_10.2.0.3-2_i386.deb&quot;&gt;oracle-instantclient-devel_10.2.0.3-2_i386.deb&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;       &lt;li&gt; &lt;a href=&quot;http://www.michelem.org/wp-content/tora-oracle/oracle-instantclient-sqlplus_10.2.0.3-2_i386.deb&quot;&gt;oracle-instantclient-sqlplus_10.2.0.3-2_i386.deb&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt; &lt;br /&gt;Или, как вариант, можно скачать соответствующие *.rpm пакеты с сайта &lt;a href=&quot;http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html&quot;&gt;Oracle&lt;/a&gt; и с помощью утилиты &quot;alien&quot; преобразовать их в *.deb.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Установка Oracle Instant Client&lt;/b&gt;&lt;/li&gt; &lt;code&gt;&lt;br /&gt;   $ sudo dpkg -i oracle-instantclient-basic_10.2.0.3-2_i386.deb&lt;br /&gt;   $ sudo dpkg -i oracle-instantclient-devel_10.2.0.3-2_i386.deb&lt;br /&gt;   $ sudo dpkg -i oracle-instantclient-sqlplus_10.2.0.3-2_i386.deb &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Проверяем, куда был установлен клиент Oracle:&lt;code&gt;&lt;br /&gt;$ whereis oracle&lt;br /&gt;oracle: /usr/lib/oracle /usr/include/oracle /usr/share/oracle&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Создание файла TNSNAMES.ORA&lt;/b&gt;&lt;/li&gt; Создаем файл /usr/lib/oracle/tnsnames.ora и заполняем его необходимыми данными для соединения с экземплярами БД Oracle.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Настройка кэша динамических библиотек&lt;/b&gt;&lt;/li&gt; В файл /etc/ld.so.conf добавляем следующую строку:&lt;br /&gt;&lt;code&gt;/usr/lib/oracle/10.2.0.3/client/lib &lt;code&gt;&lt;br /&gt;&lt;br /&gt;После чего перегружаем кэш:&lt;br /&gt;&lt;code&gt; $ sudo ldconfig &lt;code&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;li&gt;&lt;b&gt;Настройка переменных окружения&lt;/b&gt;&lt;/li&gt; Добавляем следующие строки в файл  /etc/profile: &lt;code&gt;&lt;br /&gt;   LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.3/client/lib:$LD_LIBRARY_PATH&lt;br /&gt;   TNS_ADMIN=/usr/lib/oracle&lt;br /&gt;   export LD_LIBRARY_PATH TNS_ADMIN&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;li&gt;&lt;b&gt;Получение и распаковка исходных кодов TOra&lt;/b&gt;&lt;/li&gt; Исходный код можно загрузить с &lt;a href=&quot;http://tora.sf.net/&quot;&gt;оф. сайта&lt;/a&gt;: &lt;code&gt;&lt;br /&gt;   $ sudo mkdir /usr/src/tora&lt;br /&gt;   $ cd /usr/src/tora&lt;br /&gt;   $ wget http://switch.dl.sourceforge.net/sourceforge/tora/tora-1.3.22.tar.gz&lt;br /&gt;   $ sudo tar zxvf tora-1.3.22.tar.gz&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Подготовка к пересборке TOra&lt;/b&gt;&lt;/li&gt; Устанавливаем необходимые модули:&lt;code&gt;&lt;br /&gt;   $ sudo aptitude install g++ gcc autoconf automake flex zlib1g-dev docbook-xsl&lt;br /&gt;   $ sudo aptitude install libqt3-mt-dev libqt3-compat-headers&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Сборка TOra&lt;/b&gt;&lt;/li&gt; Переходим в директорию с исходным кодом и выполняем конфигурацию:&lt;code&gt;&lt;br /&gt;   $ cd /usr/src/tora/tora-1.3.22/&lt;br /&gt;   $ ./configure --with-oracle=$ORACLE_HOME --with-oci-version=10G CC=gcc-4.2 --without-kde --with-xinerama&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;В результате последней операции получаем сообщение об ошибке:&lt;code&gt;&lt;br /&gt;   ...&lt;br /&gt;   checking whether uic supports -nounload ... yes&lt;br /&gt;   checking if STL implementation is SGI like... yes&lt;br /&gt;   checking for oracle... checking oci works... yes&lt;br /&gt;   checking for qscintilla... configure: error: Couldn&#39;t compile a simple QScintilla application. See config.log or specify its location with --with-qscintilla-includes&lt;br /&gt;   make: *** [configure-stamp] Ошибка 1&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;То есть, в системе не оказалось пакета &quot;libqscintilla-dev&quot;. Скачиваем его и повторяем попытки компиляции:&lt;code&gt;&lt;br /&gt;   $ wget http://ftp.pl.debian.org/debian/pool/main/q/qscintilla/libqscintilla-dev_1.7.1-2_all.deb&lt;br /&gt;   $ sudo dpkg -i libqscintilla-dev_1.7.1-2_all.deb&lt;br /&gt;   $ ./configure --with-oracle=$ORACLE_HOME --with-oci-version=10G CC=gcc-2.95 --without-kde --with-xinerama&lt;br /&gt;   $ make&lt;br /&gt;   $ sudo make install&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;На этот раз ошибок не появилось.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Запуск TOra&lt;/b&gt;&lt;/li&gt; Проверяем, где располагается TOra:&lt;code&gt;&lt;br /&gt;$ whereis tora&lt;br /&gt;tora: /usr/bin/tora /usr/lib/tora /usr/local/tora /usr/share/tora /usr/share/man/man1/tora.1.gz&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Запускаем IDE:&lt;code&gt;&lt;br /&gt;/usr/bin/tora&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/8863621313179798027/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/8863621313179798027' title='Комментарии: 22'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/8863621313179798027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/8863621313179798027'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2008/01/tora-debian.html' title='Компиляция TOra в Debian'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-3078056438418869259</id><published>2007-12-24T23:34:00.000+03:00</published><updated>2007-12-25T16:44:39.081+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="performance"/><category scheme="http://www.blogger.com/atom/ns#" term="tips"/><category scheme="http://www.blogger.com/atom/ns#" term="translation"/><title type='text'>Официальный перевод &quot;Apex. Sizing Up Performance&quot;</title><content type='html'>Около полугода назад я делал перевод статьи по оптимизации производительность Apex приложений - &lt;a href=&quot;http://www.oracle.com/technology/oramag/oracle/07-jan/o17browser.html&quot;&gt;&quot;Sizing Up Performance&quot;&lt;/a&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://apex-dev.blogspot.com/2007/05/1.html&quot;&gt;Повышаем производительность (часть 1)&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://apex-dev.blogspot.com/2007/05/2.html&quot;&gt;Повышаем производительность (часть 2)&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://apex-dev.blogspot.com/2007/05/3.html&quot;&gt;Повышаем производительность (часть 3)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Теперь же есть возможность оценить ее официальный перевод :), ознакомиться с которым можно в декабрьском номере русской версии Oracle Magazine - &lt;a href=&quot;http://www.oracle.com/global/ru/oramag/dec2007/w_dev_performance.html&quot;&gt;&quot;Оценка производительности&quot;&lt;/a&gt;.&lt;br /&gt;Читаем, сравниваем....&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/3078056438418869259/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/3078056438418869259' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/3078056438418869259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/3078056438418869259'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/12/apex-sizing-up-performance.html' title='Официальный перевод &quot;Apex. Sizing Up Performance&quot;'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-976349418417676196</id><published>2007-12-22T21:46:00.000+03:00</published><updated>2007-12-25T17:11:19.041+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="certification"/><category scheme="http://www.blogger.com/atom/ns#" term="news"/><title type='text'>Нужна ли сертификация по APEX?</title><content type='html'>&lt;a href=&quot;http://dpeake.blogspot.com/&quot;&gt;David Peake&lt;/a&gt;, менеджер проекта APEX, активно прорабатывает вопрос создания программы сертификации по Oracle Application Express. И в настоящий момент &lt;a href=&quot;http://dpeake.blogspot.com/2007/12/would-you-like-to-be-certified-oracle.html&quot;&gt;проводит&lt;/a&gt; опрос о необходимость такого курса вообще. &lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;a href=&quot;http://apex.oracle.com/pls/otn/f?p=33676:1&quot;&gt;Опрос&lt;/a&gt; состоит из нескольких экранов по 3-5 вопросов. Суть вопросов: направление проф. деятельности, используете ли APEX и в каком качестве и мнение насчет необходимости сертификации по APEX. &lt;br /&gt;&lt;br /&gt;Исследование будет проводится до середины января 2008. Так что если есть желание оставить свое мнение - не откладывайте - времени осталось не много... ибо скоро НГ!!!&lt;br /&gt;PS: с наступающими праздниками!!!&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/976349418417676196/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/976349418417676196' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/976349418417676196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/976349418417676196'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/12/apex.html' title='Нужна ли сертификация по APEX?'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-5903841127055989457</id><published>2007-12-04T23:52:00.000+03:00</published><updated>2007-12-25T18:06:26.294+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><category scheme="http://www.blogger.com/atom/ns#" term="tips"/><title type='text'>Запросы для получения ряда чисел</title><content type='html'>В некоторых случаях бывает необходимо получить последовательность чисел от N до M (в последнее время что-то уж очень часто возникает такая необходимость :). Дабы самому не забыть решил перечислить известные мне способы:&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt; &lt;code&gt;&lt;br /&gt;-- Самый простой&lt;br /&gt;Select Rownum &lt;br /&gt;  From User_Objects &lt;br /&gt; Where Rownum &lt;= 25;&lt;br /&gt;&lt;br /&gt;-- Кол-во единичек в CUBE - степень двойки&lt;br /&gt;Select Rownum &lt;br /&gt;  From (Select 1 From Dual Group By Cube(1, 1, 1, 1, 1)) &lt;br /&gt; Where Rownum &lt;= 25;&lt;br /&gt;&lt;br /&gt;-- С использованием иерархичного запроса&lt;br /&gt;Select Level &lt;br /&gt;  From Dual &lt;br /&gt;Connect By Level &lt;= 25;&lt;br /&gt;&lt;br /&gt;-- Только для 10 версии и выше&lt;br /&gt;Select y from dual&lt;br /&gt;model &lt;br /&gt;  dimension by (1 as x) measures (1 as y)&lt;br /&gt;  rules iterate (25) (y[iteration_number + 1] = iteration_number + 1);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Есть есть еще какие-либо решения - будет интересно посмотреть...&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/5903841127055989457/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/5903841127055989457' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/5903841127055989457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/5903841127055989457'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/12/blog-post.html' title='Запросы для получения ряда чисел'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-212320159354695514</id><published>2007-11-23T23:26:00.000+03:00</published><updated>2007-11-27T12:52:03.454+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="news"/><title type='text'>APEX 3.1 доступен для тестирования</title><content type='html'>Буквально на днях команда Oracle Application Express анонсировала версию 3.1 для beta тестирования. Для того, чтобы получить доступ к тестовому инстансу, необходимо&lt;span class=&quot;fullpost&quot;&gt; всего лишь &lt;a href=&quot;http://apex.oracle.com/pls/otn/f?p=eval31&quot;&gt;зарегистрироваться&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Основная новинка - это интерактивные отчеты (Interactive Report Regions). Уже есть даже демонстрационная страничка от &lt;a href=&quot;http://dgielis.blogspot.com/&quot;&gt;Dimitri Gielis&lt;/a&gt; - &lt;a href=&quot;http://apex.oracle.com/pls/apexbeta/f?p=319:1:3997260981153731&quot;&gt;пример Interactive Report Regions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Кроме того, для учета пожеланий/замечаний пользователей новой версии Apex, была создана &lt;a href=&quot;http://apex.oracle.com/pls/otn/f?p=fdbk31&quot;&gt;страничка обратной связи&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Список новых фич:&lt;ul&gt;&lt;br /&gt;    &lt;li&gt;Application Builder &lt;/li&gt;    &lt;br /&gt;    &lt;ul&gt;  &lt;li&gt;Interactive Report Regions&lt;/li&gt;&lt;br /&gt;          &lt;li&gt;Templates &lt;/li&gt;          &lt;br /&gt;          &lt;ul&gt;  &lt;li&gt;Improve Searching of templates&lt;/li&gt;&lt;br /&gt;                &lt;li&gt;Replace Templates&lt;/li&gt;&lt;br /&gt;                &lt;li&gt;Publish Templates&lt;/li&gt;&lt;br /&gt;                &lt;li&gt;Bulk Unsubscribe of templates&lt;/li&gt;&lt;br /&gt;                &lt;li&gt;2 New Themes&lt;/li&gt;          &lt;/ul&gt;&lt;br /&gt;          &lt;li&gt;Wizards &lt;/li&gt;          &lt;br /&gt;          &lt;ul&gt;  &lt;li&gt;Allow for early exit when creating HTML region&lt;/li&gt;&lt;br /&gt;                &lt;li&gt;Create Interactive Report Wizard&lt;/li&gt;&lt;br /&gt;                &lt;li&gt;Remove 32k limit on Create Application on a Spreadsheet&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;          &lt;li&gt;Addition of Application Groups&lt;/li&gt;&lt;br /&gt;          &lt;li&gt;Simplification of Page Group pages&lt;/li&gt;&lt;br /&gt;          &lt;li&gt;Addition of Application Date Format&lt;/li&gt;&lt;br /&gt;          &lt;li&gt;Support for Declarative Media Type&lt;/li&gt;&lt;br /&gt;          &lt;li&gt;Can view existence of run-only application (but cannot edit them)&lt;/li&gt;&lt;br /&gt;          &lt;li&gt;Display Application Name in App Builder footer&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;    &lt;li&gt;Workspace Administration &lt;/li&gt;    &lt;br /&gt;    &lt;ul&gt;  &lt;li&gt;Workspace-specific Builder Notifications&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;    &lt;li&gt;Runtime Installation&lt;/li&gt;&lt;br /&gt;    &lt;li&gt;APIs &lt;/li&gt;    &lt;br /&gt;    &lt;ul&gt;  &lt;li&gt;Augment APEX_MAIL API to support adding attachments to e-mails&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/212320159354695514/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/212320159354695514' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/212320159354695514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/212320159354695514'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/11/apex-31.html' title='APEX 3.1 доступен для тестирования'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-4237023485865839690</id><published>2007-10-01T23:08:00.000+04:00</published><updated>2007-10-03T20:07:11.381+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="svn"/><title type='text'>Вывод ревизии subversion в приложениях Apex.</title><content type='html'>Как уже упоминалось &lt;a href=&quot;http://apex-dev.blogspot.com/2007/05/apex-1-export.html&quot;&gt;ранее&lt;/a&gt;, зачастую приложение разворачивается на нескольких площадках. Соответственно, вполне логична ситуация, когда на двух и более площадках будут находиться различные версии одного и того же приложения. Поэтому достаточно часто в GUI выводят этот самый номер версии и, как правило, весь этот GUI распространяется по площадкам с помощью системы управлениями версиями &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Далее будет рассматриваться ситуация, когда приложение Oracle Application Express находится под управлением системы контроля версиями Subversion и стоит задача вывести в интерфейс номер svn-ревизии приложения.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt; &lt;b&gt;Теория&lt;/b&gt;&lt;br /&gt;Суть решения заключается в использовании одной из функциональностей Subversion - &lt;a href=&quot;http://svnbook.red-bean.com/nightly/ru/svn.advanced.props.special.keywords.html&quot;&gt; Keyword Substitution&lt;/a&gt;, которая позволяет при сохранении изменений выполнять замены ключевых слов. То есть, в файле, находящемся под управлением Subversion, может выводиться информация о дате или авторе изменения, о номере ревизии и т.д.).&lt;br /&gt;&lt;br /&gt;Решение поставленной задачи состоит из нескольких этапов:&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Объявить строку замены (&lt;a href=&quot;http://download.oracle.com/docs/cd/B32472_01/doc/appdev.300/b32471/concept.htm#BEIFGFJF&quot;&gt;Substitution String&lt;/a&gt;) в apex-приложении&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Изменить шаблон приложения таким образом, чтобы использовалась новая строка подстановки&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Включить функциональность Keyword Substitution для файла приложения в Subversion&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Практика. Определение строки замены&lt;/b&gt;&lt;br /&gt;Для того чтобы определить свою собственную строку замены, необходимо перейти в &quot;Shared Components -&gt; Application -&gt; Definition&quot;:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnLTXDtLyEAjNalUzhwCsjHszCEAWtQRgFLdZcobw6KXTuJIrn1LzkhCvZJPrV9ixu93lZm32xMT9dBD_M0FHPDZ4Uqkpq4QjM9yHP9ArHNquITR9OgBgjLH9EU29X49fVs14vwKOMpdo/s1600-h/01.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnLTXDtLyEAjNalUzhwCsjHszCEAWtQRgFLdZcobw6KXTuJIrn1LzkhCvZJPrV9ixu93lZm32xMT9dBD_M0FHPDZ4Uqkpq4QjM9yHP9ArHNquITR9OgBgjLH9EU29X49fVs14vwKOMpdo/s320/01.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5117137480255604290&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;где перейти в раздел &quot;Substitutions&quot; и добавить новую строку замены, например SVN_REV (значение этой строки важно и изменять его не следует - &quot;$Rev $&quot;. Это связано с особенностями работы Subversion - см. документацию по &lt;a href=&quot;http://svnbook.red-bean.com/nightly/ru/svn.advanced.props.special.keywords.html&quot;&gt; Subversion. Keyword Substitution&lt;/a&gt;):&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvJbOBwseiD_28VXwaoQZH8v19NmaCwKFSTHHFInHKKK6QHIJGSCrTscx3GJjLKh8AiFsANYjsD96hJDyvTcVSVkWE6iLejZCxVO1Kqka_dty1renbbsfJHeOVW5dG88UhYtgMbxWKHu8/s1600-h/02.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvJbOBwseiD_28VXwaoQZH8v19NmaCwKFSTHHFInHKKK6QHIJGSCrTscx3GJjLKh8AiFsANYjsD96hJDyvTcVSVkWE6iLejZCxVO1Kqka_dty1renbbsfJHeOVW5dG88UhYtgMbxWKHu8/s320/02.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5117137484550571602&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Теперь, если посмотреть файл экспорта приложения (как это сделать описывалось &lt;a href=&quot;http://apex-dev.blogspot.com/2007/05/apex-1-export.html&quot;&gt;ранее&lt;/a&gt;), то можно увидеть приблизительно такие строки (можно найти поиском по фразе &quot;svn&quot;):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  p_substitution_string_01 =&gt; &#39;SVN_REV&#39;,&lt;br /&gt;  p_substitution_value_01  =&gt; &#39;$Rev: $&#39;,&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;То есть, значение строки подстановки в файле экспорта лежит в открытом виде, которое можно изменять как угодно. Это нам пригодиться.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Практика. Изменение шаблона&lt;/b&gt;&lt;br /&gt;Для того чтобы вывести номер версии в GUI, необходимо изменить шаблон, который отвечает за общий вид формы. Для чего необходимо перейти в &quot;Shared Components -&gt; User Interface -&gt; Templates&quot; и выбрать шаблон страницы:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqouwZRYDrl2AusxHczaLem9EynbVr8YF1skaYmr0nP0UZU-hOBpxZ76vPzNDatA59Ltyh7XuDkiYXQT2UypG0rNoAbnWEdPgut2-EozgntN1mwFkXGSECOGVhootD00NT1ewVeVT6d88/s1600-h/03.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqouwZRYDrl2AusxHczaLem9EynbVr8YF1skaYmr0nP0UZU-hOBpxZ76vPzNDatA59Ltyh7XuDkiYXQT2UypG0rNoAbnWEdPgut2-EozgntN1mwFkXGSECOGVhootD00NT1ewVeVT6d88/s320/03.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5117137484550571618&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXLfdCZDiy-7ixmqfDEpwUQjQHS-r0Vrcq9y7uUG6oXpXUwS81iWKG0cOiUXTr7IGHbUEFn-k9qk8ljp-edHdQ04hy0fngpMZfInVEvbckc6uEdZ2l5wyTWSnhr_wL1e2lLAqWDUnpW2Y/s1600-h/04.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXLfdCZDiy-7ixmqfDEpwUQjQHS-r0Vrcq9y7uUG6oXpXUwS81iWKG0cOiUXTr7IGHbUEFn-k9qk8ljp-edHdQ04hy0fngpMZfInVEvbckc6uEdZ2l5wyTWSnhr_wL1e2lLAqWDUnpW2Y/s320/04.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5117137488845538930&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;После этого, необходимо прописать в шаблоне созданную ранее строку подстановки &quot;SVN_REV&quot;, например так:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSlT1aUiQRJ1LgpY9yu1zCZAU2DsLMbNcTBTbpfYyMRGd1ek-yDW5KKG9j3KLWaPtZtLrsxuwNKfc3PLjPAapVNH4Ew6GPNNGtQaNV2JyP_-YQYVTX-leh5707tT-fPzMeZM31zv9UsMY/s1600-h/05.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSlT1aUiQRJ1LgpY9yu1zCZAU2DsLMbNcTBTbpfYyMRGd1ek-yDW5KKG9j3KLWaPtZtLrsxuwNKfc3PLjPAapVNH4Ew6GPNNGtQaNV2JyP_-YQYVTX-leh5707tT-fPzMeZM31zv9UsMY/s320/05.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5117137488845538946&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Теперь при работе приложения в нижнем левом углу будет следующая картина:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiILRZNzkpsaa9IhifggaBmL7VtwTeOqeat46VAn9qQK3FNdFLDRm5j2ux0wvwXd2azXHagtR59i-UiR_Hq2NpWq9HcqAPdfAv4Fo_vslbbTJ0paxFDBuNNNOFzlFNd76T-wjzuKe4JX2E/s1600-h/06.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiILRZNzkpsaa9IhifggaBmL7VtwTeOqeat46VAn9qQK3FNdFLDRm5j2ux0wvwXd2azXHagtR59i-UiR_Hq2NpWq9HcqAPdfAv4Fo_vslbbTJ0paxFDBuNNNOFzlFNd76T-wjzuKe4JX2E/s320/06.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5117138197515142802&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Практика. Включение Keyword Substitution&lt;/b&gt;&lt;br /&gt;Основная часть работы уже сделана. осталась малость - включить функцию &quot;Keyword Substitution&quot; для файла, в котором располагается описание нашего приложения. Допустим, файл нашего приложения называется &quot;apex_app.sql&quot;. Тогда включение будет выглядеть так:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;drive:\path\to\svn\repository\svn propset svn:keywords &quot;Date Revision Author&quot; apex_app.sql&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Вот и все. Теперь при каждом сохранении очередной версии файла apex-приложения будет вместо &quot;$Rev $&quot; прописываться актуальная версия файла в Subversion-репозитариии. То есть, в каждом файле приложения будет лежать строка подстановки с актуальной версией файла. &lt;br /&gt;То есть, картинка в левом нижнем углу должна быть приблизительно такой:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbQt9D0eJc7ZSFQwl9tSRj9HouNETvyy46rT8E9NTLwgAvucL88W-AkfKgCRBxTfby8IzwnCuDOsdoN4HTGX3TKySpmyK_lpkotcyCdWQj5gECnIyCT5Si4yvH0bTlcn8Li5Evt6GttXM/s1600-h/07.JPG&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbQt9D0eJc7ZSFQwl9tSRj9HouNETvyy46rT8E9NTLwgAvucL88W-AkfKgCRBxTfby8IzwnCuDOsdoN4HTGX3TKySpmyK_lpkotcyCdWQj5gECnIyCT5Si4yvH0bTlcn8Li5Evt6GttXM/s320/07.JPG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5117142479597536930&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Таким же образом можно выводить и последнего автора изменений или дату последнего сохранения в репозитарии. &lt;br /&gt;&lt;br /&gt;ps: прошу прощения за столь значительную задержку в публикациях, ибо после сезона отпусков случился аврал :(, что отрицательно сказалось на количестве свободных минут.&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/4237023485865839690/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/4237023485865839690' title='Комментарии: 10'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/4237023485865839690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/4237023485865839690'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/10/subversion-apex.html' title='Вывод ревизии subversion в приложениях Apex.'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnLTXDtLyEAjNalUzhwCsjHszCEAWtQRgFLdZcobw6KXTuJIrn1LzkhCvZJPrV9ixu93lZm32xMT9dBD_M0FHPDZ4Uqkpq4QjM9yHP9ArHNquITR9OgBgjLH9EU29X49fVs14vwKOMpdo/s72-c/01.JPG" height="72" width="72"/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-8716969139481457329</id><published>2007-07-23T07:49:00.000+04:00</published><updated>2007-07-24T10:18:10.405+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="news"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><title type='text'>Изменения DBMS_SQL в Oracle 11g</title><content type='html'>Как уже говорилось &lt;a href=&quot;http://apex-dev.blogspot.com/2007/06/oracle-11g.html&quot;&gt;ранее&lt;/a&gt;, объявлено о выходе новой версии Oracle. Соответственно, в сети появляется все больше и больше информации о нововведениях, идущих в одиннадцатой версии. Так, блуждая по сети, совершенно случайно наткнулся на новость о некоторых изменениях в спецификации пакета dbms_sql.&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;В небольшой заметке &lt;a href=&quot;http://technology.amis.nl/blog/?p=2332&quot;&gt;&quot;Oracle 11G: describing a refcursor&quot;&lt;/a&gt; говорится о двух новых методах пакета dbms_sql:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;to_cursor_number&lt;/b&gt;, который преобразует refcursor в &quot;dbms_sql cursor&quot;(тот, что возвращает dbms_sql.open_cursor)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;to_refcursor&lt;/b&gt;, который выполняет обратное преобразование, то есть, преобразует &quot;dbms_sql cursor&quot; в refcursor&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Таким образом, теперь можно совместно использовать пакет dbms_sql и переменные типа Ref Cursor.&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/8716969139481457329/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/8716969139481457329' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/8716969139481457329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/8716969139481457329'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/07/dbmssql-oracle-11g.html' title='Изменения DBMS_SQL в Oracle 11g'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-3844066703583254886</id><published>2007-07-11T23:49:00.000+04:00</published><updated>2007-07-12T11:00:37.867+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="news"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><title type='text'>Релиз Oracle 11g</title><content type='html'>Свершилось! Состоялся релиз одиннадцатой версии Oracle. Соответственно, на OTN появилось много нового...&lt;span class=&quot;fullpost&quot;&gt; Появилось много различных &lt;a href=&quot;http://www.oracle.com/technology/products/database/oracle11g/index.html&quot;&gt;обзоров&lt;/a&gt;, среди которых стоит в первую очередь обратить внимание на:&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.oracle.com/technology/products/database/oracle11g/pdf/database-11g-new-features-whitepaper.pdf&quot;&gt;Oracle Database 11g New Features Overview&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.oracle.com/technology/products/database/oracle11g/pdf/application-development-11g-whitepaper.pdf&quot;&gt;Oracle Database 11g Application Development&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;О многих нововведениях уже было рассказано &lt;a href=&quot;http://apex-dev.blogspot.com/2007/06/oracle-11g.html&quot;&gt;ранее&lt;/a&gt;, так что читаем, пробуем...&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/3844066703583254886/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/3844066703583254886' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/3844066703583254886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/3844066703583254886'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/07/oracle-11g.html' title='Релиз Oracle 11g'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-7121795697254306532</id><published>2007-06-29T23:04:00.000+04:00</published><updated>2007-07-01T11:35:22.790+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="news"/><title type='text'>Релиз Apex 3.0.1</title><content type='html'>Cегодня состоялся релиз &lt;a href=&quot;http://www.oracle.com/technology/products/database/application_express/index.html&quot;&gt;Oracle Application Express&lt;/a&gt; 3.0.1! Это первая заплатка к Apex 3.0., в которой  представлены следующие основные изменения:&lt;span class=&quot;fullpost&quot;&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Возможность прямой установки в Oracle Database XE (версия 3.0 такой возможности не предоставляла)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Поддержка миграции из Oracle Database XE в Oracle Standart/Enterprise Edition 10.2.0.3&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Поддержка интеграции с Oracle SQL Developer 1.2&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Включена поддержка конфигурации Apache FOP для использования в качестве сервера отчетов для печати PDF&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Различные улучшения в стабильности и безопасности&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Ознакомиться с процессом установки заплатки и ошибками, которые она исправляет, можно в &lt;a href=&quot;http://www.oracle.com/technology/products/database/application_express/html/3.0.1_readme.html&quot;&gt;&quot;patch set notes&quot;&lt;/a&gt;. Кроме того, о различиях между версиями APEX 2.1 and 3.0.1, а так же об обновлении с 2.1 на 3.0.1 можно узнать из статьи &lt;a href=&quot;http://www.oracle.com/technology/products/database/application_express/html/3.0.1_and_xe.html&quot;&gt;&quot;Oracle Database XE and Application Express 3.0.1&quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Скачать заплатку можно &lt;a href=&quot;http://www.oracle.com/technology/products/database/application_express/download.html&quot;&gt;отсюда&lt;/a&gt;.&lt;br /&gt;ps: судя по &lt;a href=&quot;http://forums.oracle.com/forums/thread.jspa?threadID=526025&amp;tstart=0&quot;&gt;сообщениям&lt;/a&gt; форума, установка новой заплатки уже идет полным ходом и весьма небезуспешно.&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/7121795697254306532/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/7121795697254306532' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/7121795697254306532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/7121795697254306532'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/06/apex-301.html' title='Релиз Apex 3.0.1'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-8306714474939896429</id><published>2007-06-25T23:40:00.000+04:00</published><updated>2007-06-30T11:39:52.427+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="news"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><title type='text'>Oracle выпускает плагин для Eclipse</title><content type='html'>Совсем недавно Oracle присоединилась к Eclipse Foundation... и вот результат - выпущен &lt;a href=&quot;http://www.oracle.com/technology/tech/eclipse/dtp/index.html&quot;&gt;Oracle Database Plugin&lt;/a&gt;, расширяющий возможности Eclipse Data Tools Platform (DTP).&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt; Плагин предоставляет следующие возможности:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;соединение с БД Oracle версий 9iR2 и выше&lt;/li&gt;&lt;br /&gt;&lt;li&gt;просмотр объектов БД и навигация по ним&lt;/li&gt;&lt;br /&gt;&lt;li&gt;выполнение хранимых процедур и функций&lt;/li&gt;&lt;br /&gt;&lt;li&gt;графическое и текстовое представление планов выполнения&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Инсталляция плагина очень проста (как и любого другого плагина для Eclipse). Необходимо либо прописать &quot;http://download.eclipse.org/datatools/updates&quot; в меню &quot;Help-&gt;Software Updates-&gt;Find&quot;, либо скачать &lt;a href=&quot;http://www.oracle.com/technology/tech/eclipse/dtp/downloads.html&quot;&gt;архив&lt;/a&gt; с плагином и распаковать его в директорию Eclipse. Работать с новым плагином можно будет после перезагрузки.&lt;br /&gt;&lt;br /&gt;Информацию об установке и основных функциях можно получить на &lt;a href=&quot;http://www.oracle.com/technology/tech/eclipse/dtp/files/gettingstarted.html&quot;&gt;OTN&lt;/a&gt;. Кроме того, на OTN появилась соответствующая &lt;a href=&quot;http://forums.oracle.com/forums/forum.jspa?forumID=393&quot;&gt;ветка форума&lt;/a&gt;, где, правда, пока мало информации, но, думаю, в перспективе, это будет первоисточник путей решений проблем с новым плагином.&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/8306714474939896429/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/8306714474939896429' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/8306714474939896429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/8306714474939896429'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/06/oracle-eclipse.html' title='Oracle выпускает плагин для Eclipse'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-1614283494871297555</id><published>2007-06-20T23:10:00.000+04:00</published><updated>2007-06-27T12:58:26.696+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="news"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><title type='text'>Oracle 11g гредет....</title><content type='html'>Oracle &lt;a href=&quot;http://www.oracle.com/webapps/events/EventsDetail.jsp?p_eventId=66665&quot;&gt; официально объявила &lt;/a&gt;о дате выпуска очередной версии СУБД - Oracle 11g. Это событие запланировано на 11 июля 2007 года и пройдет оно в Нью-Йорке. На конференции OpenWorld (в октябре прошлого года) представители Oracle пролили немного света на изменения, которые войдут в 11ый релиз. Как всегда, обещаются улучшения производительности, масштабируемости и т.д. Кроме того, была обещана новая технология компрессии данных, которая позволит значительно сократить размер БД, и механизм хранения неструктурированных данных... Но что же нас ждет на самом деле?&lt;span class=&quot;fullpost&quot;&gt; Узнать более подробную информацию о нововведениях можно узнать как минимум в двух местах:&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.dba-oracle.com/oracle11g/oracle_11g_new_features.htm&quot;&gt;dba-oracle.com&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.tusc.com/tusc/nonhtml/collaborate2007-11g_features.zip&quot;&gt;Презентация на tusc.com&lt;/a&gt; (за ссылку спасибо &lt;a href=&quot;http://dsvolk.blogspot.com/2007/05/11g-new-features.html&quot;&gt;Дмитрию Волкову&lt;/a&gt;)&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;Как всегда, много всяких улучшений и новинок, наиболее интересными среди которых мне показались следующие:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Новый тип данных &quot;simple_integer&quot;&lt;/b&gt;. Переменные это типа всегда NOT NULL и работа с ними выполняется быстрее, чем с переменными типа  PLS_INTEGER.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Серверный пул соединений (server-side connection pooling)&lt;/b&gt;. Позволяет нескольким клиентам использовать один и тот же пул сессий(должен совпадать USERID). Клиенты могут соединяться/отсоединяться с БД без затрат на создание серверной сессии.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Кэширование результатов запроса&lt;/b&gt;. Результаты SQL-запросов кэшируются. Размер кэша устанавливает DBA. Включается функциональность для таблицы следующей командой: &lt;pre&gt; alter table _ТАБЛИЦА_ cache results &lt;/pre&gt; &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Виртуальные колонки (Virtual columns)&lt;/b&gt;. Виртуальные колонки представляют из себя функции.Соответственно, индексы по таким колонкам являются индексами над функциями. В выражениях могут использоваться: колонки таблицы, константы, SQL-функции или функции, созданные пользователем. Поддерживается так же секционирование. Виртуальные колонки не могут использоваться в индексно-организованных (index organized) или внешних (external) таблицах. Прямая запись для таких колонок не возможна.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Ключевое слово &quot;super&quot; для объектно - ориентированных DDL&lt;/b&gt;. Новое ключевое слово используется в экземплярах производного типа (перегруженного) для того, чтобы сослаться на базовый класс, от которого текущий был унаследован.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Ключевое слово &quot;continue&quot; в циклах&lt;/b&gt;. Без комментариев... :)... давно пора.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Хранилище XML (XML data storage)&lt;/b&gt;. Начиная с 11ой версии, XML можно хранить как CLOB или бинарный тип данных.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Автоматическое секционирование&lt;/b&gt;. Автоматическое создание секций.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Порядок срабатывания тригера.&lt;/b&gt; Можно указывать порядок выполнения тригеров.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Невидимые индексы (Invisible indexes)&lt;/b&gt;. Вместо того, чтобы удалять индекс, если он более (или пока) не нужен, можно просто сделать его невидимым. В результате при выполнении SQL-запросов этот индекс использоваться не будет.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Создание и перестроение индекса в online (create and rebuild index online)&lt;/b&gt;. Создание и перестроение индекса может выполняться при выполнении DML операции над таблицей. Ранее для этого требовалась эксклюзивная блокировка. Кроме того, перестроение индекса (rebuild) быстрее, чем удаление (drop) и создание (create) индекса.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Использование последовательностей в PL/SQL&lt;/b&gt;. Ранее, для того, чтобы получить следующее значение из последовательности (sequence.nexval) необходимо было использовать явный или неявный курсор (SQL). Теперь курсор более не нужен, и следующий код будет работать: &lt;pre&gt;v_val := Sequence.nexval;&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Read-only таблицы&lt;/b&gt;. К таким таблицам не применимы DML-операции, а так же select for update. Перевод в данный режим таблиц выполняется следующей командой: &lt;pre&gt; alter table _ТАБЛИЦА_ read only &lt;/pre&gt; &lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;... т.д. Список, естественно, не полный. Окончательный будет известен только после официального релиза. Ждем....&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/1614283494871297555/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/1614283494871297555' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/1614283494871297555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/1614283494871297555'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/06/oracle-11g.html' title='Oracle 11g гредет....'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-2787506678595643779</id><published>2007-06-15T23:38:00.000+04:00</published><updated>2007-06-21T11:29:03.566+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="report"/><title type='text'>Apex. Фиксируем габариты отчета.</title><content type='html'>Читая один из англоязычных блогов по Oracle Application Express, наткнулся на одну интересную &lt;a href=&quot;http://atulley.wordpress.com/2007/06/14/apex-using-scrollbars-in-a-region/&quot;&gt;хитрость&lt;/a&gt;.&lt;br /&gt;Суть проблемы заключается в том, что для отчетов с большим количеством записей есть только 2 пути для отображения: &lt;ul&gt;&lt;br /&gt;&lt;li&gt;либо настраивать постраничный вывод (pagination)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;либо показывать все записи и позволять пользователю скроллировать страничку&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Автор предлагает третий вариант (своего рода, усовершенствование второго подхода) - зафиксировать габариты отчета и показывать все строки. &lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Фиксация габаритов очень проста - необходимо в настройках отчета прописать лишь:&lt;ul&gt;&lt;br /&gt;&lt;li&gt;в &quot;Region Header&quot;: &lt;code&gt; &lt; div style=&quot;overflow: auto; height: 450px;&quot;&gt; &lt;/code&gt;, где вместо &quot;450px&quot; можно писать любую желаемую высоту отчета в пикселях.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;в &quot;Region footer&quot;:&lt;code&gt; &lt; /div &gt; &lt;/code&gt; &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;А именно, необходимо найти описание отчета:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtXuwJK-dY2f3xvKXhvMy48-CjIJG15QD2hPe-LU_-iEj1MJQqfQWDH7heZXlVUt55pC5-I1SYAzj_rEMzYeg8j-aSm9mUYRJRzvqHU6svpkLYU7iye38G3W9n1X7Iifw4tnY9hFjhcI0/s1600-h/01.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtXuwJK-dY2f3xvKXhvMy48-CjIJG15QD2hPe-LU_-iEj1MJQqfQWDH7heZXlVUt55pC5-I1SYAzj_rEMzYeg8j-aSm9mUYRJRzvqHU6svpkLYU7iye38G3W9n1X7Iifw4tnY9hFjhcI0/s320/01.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5078408000153924130&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;И прописать в соответствующие поля необходимые значения:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzttNcjCY6GY4BC_LDThGFDpp0euhQhnK7Fb050jd1R_3vUuV4AepGWTBxxrhpBfpWJLw6xWBG5Npz2OTg-aNBPrfSaudVOA8rZCWh77P0ouP45yF9OTUtaDsQJGABNsUoNlHZtffjL0E/s1600-h/02.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzttNcjCY6GY4BC_LDThGFDpp0euhQhnK7Fb050jd1R_3vUuV4AepGWTBxxrhpBfpWJLw6xWBG5Npz2OTg-aNBPrfSaudVOA8rZCWh77P0ouP45yF9OTUtaDsQJGABNsUoNlHZtffjL0E/s320/02.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5078408000153924146&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Результат, как всегда, можно посмотреть на &lt;a href=&quot;http://apex.oracle.com/pls/otn/f?p=38134&quot;&gt;apex.oracle.com&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/2787506678595643779/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/2787506678595643779' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/2787506678595643779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/2787506678595643779'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/06/apex.html' title='Apex. Фиксируем габариты отчета.'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtXuwJK-dY2f3xvKXhvMy48-CjIJG15QD2hPe-LU_-iEj1MJQqfQWDH7heZXlVUt55pC5-I1SYAzj_rEMzYeg8j-aSm9mUYRJRzvqHU6svpkLYU7iye38G3W9n1X7Iifw4tnY9hFjhcI0/s72-c/01.JPG" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-2548773222496578105</id><published>2007-06-10T11:37:00.000+04:00</published><updated>2007-06-11T13:15:19.958+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="news"/><category scheme="http://www.blogger.com/atom/ns#" term="sqldeveloper"/><title type='text'>Oracle SQL Developer 1.2</title><content type='html'>Вышла новая версия &lt;a href=&quot;http://www.oracle.com/technology/products/database/sql_developer/index.html&quot;&gt;Oracle SQL Developer&lt;/a&gt;. Данная IDE  становится все более привлекательной для разработчиков Oracle APEX в силу появления новых фич (анонсировалось в &lt;a href=&quot;http://apex-dev.blogspot.com/2007/05/apex-sql-developer.html&quot;&gt;&quot;Отчеты по Apex в SQL Developer&quot;&lt;/a&gt; и &lt;a href=&quot;http://apex-dev.blogspot.com/2007/06/apex-sqldeveloper.html&quot;&gt;&quot;Apex и SQLDeveloper - интеграция продолжается&quot;&lt;/a&gt;).&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Со списком новых функциональностей можно ознакомиться на сайте OTN - &lt;a href=&quot;http://www.oracle.com/technology/products/database/sql_developer/files/relnotes_v12.html&quot;&gt;&quot;Release Notes 1.2&quot;&lt;/a&gt;. Основными из них являются:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;поддержка Oracle Application Express (некоторые отчеты, импорт / экспорт приложений)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;поддержка миграции из сторонних баз данных в Oracle. Поддерживаются:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Microsoft Access: 97, 2000, 2002/XP, 2003&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Microsoft SQL Server: 7, 2000, 2005&lt;/li&gt;&lt;br /&gt;&lt;li&gt;MySQL: 3, 4, 5&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/2548773222496578105/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/2548773222496578105' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/2548773222496578105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/2548773222496578105'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/06/oracle-sql-developer-12.html' title='Oracle SQL Developer 1.2'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-1072044974837507024</id><published>2007-06-05T23:56:00.000+04:00</published><updated>2007-06-06T12:44:43.413+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="news"/><category scheme="http://www.blogger.com/atom/ns#" term="sqldeveloper"/><title type='text'>Apex и SQLDeveloper - интеграция продолжается</title><content type='html'>Как уже упоминалось &lt;a href=&quot;http://apex-dev.blogspot.com/2007/05/apex-sql-developer.html&quot;&gt;ранее&lt;/a&gt;, в последней версии Oracle SQLDeveloper появилась некоторая совместимость с Oracle Application Express. Как оказалось, это не последний шаг в интеграции!&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;На своем блоге, &lt;a href=&quot;http://krisrice.blogspot.com/&quot;&gt;Крис Райс&lt;/a&gt; (принимает участие в разработке Oracle SQLDeveloper), &lt;a href=&quot;http://krisrice.blogspot.com/2007/06/more-apexsqldev.html&quot;&gt;озвучил &lt;/a&gt;несколько новшеств в грядущем обновлении. Они касаются экспорта/импорта приложений Apex. Ранее аналогичные манипуляции можно было выполнять только из самого Apex. Так же, Крис приводите несколько снимков, описывающих новшества:&lt;br /&gt;&lt;br /&gt;Экспорт приложения:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd580mHsngOlo1Brn11skds75oyGy9T8lROFJqyYvyN430ZIApdIfhyL-n54JAskLnKqHpUaG52nSIHa-GDQ90o2-XZZ-kME1UJR34KXGV-xJIOgNd3ihZomjwTU5ba3EQw_9ocemnW2w/s1600-h/01.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd580mHsngOlo1Brn11skds75oyGy9T8lROFJqyYvyN430ZIApdIfhyL-n54JAskLnKqHpUaG52nSIHa-GDQ90o2-XZZ-kME1UJR34KXGV-xJIOgNd3ihZomjwTU5ba3EQw_9ocemnW2w/s320/01.png&quot; alt=&quot;export apex application&quot; id=&quot;BLOGGER_PHOTO_ID_5072868162356982258&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Импорт приложения:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqr8wQRoqRUviNHfg3MJOpMbw_Dp3B4GDjTs_8_MPLDjEEGfrGg8NiY9lMmKHPcMieEjg_5RhdYhkuQNuRtXkgj2wef0nzUTilmUrWFJrEnlOreAl8Cyw2KRqRaJIIETz9dw3BdxlLC_k/s1600-h/02.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqr8wQRoqRUviNHfg3MJOpMbw_Dp3B4GDjTs_8_MPLDjEEGfrGg8NiY9lMmKHPcMieEjg_5RhdYhkuQNuRtXkgj2wef0nzUTilmUrWFJrEnlOreAl8Cyw2KRqRaJIIETz9dw3BdxlLC_k/s320/02.png&quot; alt=&quot;import apex application&quot; id=&quot;BLOGGER_PHOTO_ID_5072868162356982274&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Настройки импорта:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb7xzcj5b92TPLoVgzsih72icqcCy-iRPC0N1vaBl19S-UDSx0wNAIswa23hcQfmScJdX2uJbhJ7c8UEo6KKIEc8JNBF8OFB1g9Tm90qKDkeOeefjQX64K65DSoj9TQs-Vatkk1Kf93GU/s1600-h/03.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb7xzcj5b92TPLoVgzsih72icqcCy-iRPC0N1vaBl19S-UDSx0wNAIswa23hcQfmScJdX2uJbhJ7c8UEo6KKIEc8JNBF8OFB1g9Tm90qKDkeOeefjQX64K65DSoj9TQs-Vatkk1Kf93GU/s320/03.png&quot; alt=&quot;apex application import option&quot; id=&quot;BLOGGER_PHOTO_ID_5072868166651949586&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/1072044974837507024/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/1072044974837507024' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/1072044974837507024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/1072044974837507024'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/06/apex-sqldeveloper.html' title='Apex и SQLDeveloper - интеграция продолжается'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd580mHsngOlo1Brn11skds75oyGy9T8lROFJqyYvyN430ZIApdIfhyL-n54JAskLnKqHpUaG52nSIHa-GDQ90o2-XZZ-kME1UJR34KXGV-xJIOgNd3ihZomjwTU5ba3EQw_9ocemnW2w/s72-c/01.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-5063209892886433901</id><published>2007-06-03T23:16:00.000+04:00</published><updated>2007-06-21T10:36:34.891+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="deploy"/><category scheme="http://www.blogger.com/atom/ns#" term="tips"/><title type='text'>Развертывание приложений Apex : часть 2 (Import)</title><content type='html'>Продолжаем рассказ о развертывании приложений Oracle Application Express, начатый в заметке &lt;a href=&quot;http://apex-dev.blogspot.com/2007/05/apex-1-export.html&quot;&gt;&quot;Развертывание приложений Apex : часть 1 (Export)&quot;&lt;/a&gt;. После того, как приложение было экспортировано из Apex-репозитария на одном сервере, его необходимо проимпортировать в репозитарий другого сервера...&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;Импорт выполняется через &quot;Application Builder&quot;-&gt;&quot;Import&quot;-&gt;&quot;Application&quot;, где необходимо указать путь к файлу, в котором находится описание импортируемого приложения, тип информации в файле и кодировку:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit40goCjXgJJiqAzGt4eJxbhQzeDofcXLQxRGsFHSV45zaOfNHTLo3XS2FqOh8sQwBAnIZHLKKCwiMb6Z1Dx3X6yJrovI8FOYUyvxDjK1MH5mkuSUALEXCskUU3pZROaT9GixgZ-lrLTI/s1600-h/04.new.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit40goCjXgJJiqAzGt4eJxbhQzeDofcXLQxRGsFHSV45zaOfNHTLo3XS2FqOh8sQwBAnIZHLKKCwiMb6Z1Dx3X6yJrovI8FOYUyvxDjK1MH5mkuSUALEXCskUU3pZROaT9GixgZ-lrLTI/s320/04.new.jpg&quot; alt=&quot;start to import apex application&quot; id=&quot;BLOGGER_PHOTO_ID_5069357738710335458&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Признаком успешного импорта файла в репозитарий является следующее сообщение:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY3vSVXhu67nzCOEE7tDhvqu1B-M8ZYV4QujicAIsEe23GReY0O6_TTjh_BUKRuvwH1phBKUhe1em6i3UedTA_Yy5eAlXEEOkziCEIzb6Rr9WgJ24z0I5lECQfCnEf6KUBQmYVzKyO0hw/s1600-h/05.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY3vSVXhu67nzCOEE7tDhvqu1B-M8ZYV4QujicAIsEe23GReY0O6_TTjh_BUKRuvwH1phBKUhe1em6i3UedTA_Yy5eAlXEEOkziCEIzb6Rr9WgJ24z0I5lECQfCnEf6KUBQmYVzKyO0hw/s320/05.jpg&quot; alt=&quot;success apex application import&quot; id=&quot;BLOGGER_PHOTO_ID_5069357738710335474&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Последним экраном импорта является описание установок развертывания приложения:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoXwP_o0WqK9cIMbRoDZ_nu8y-mqwILJzSdI_LoFOqPPqpA4WFaYfOuFxYvFGUEivYRiuuzssFFrXdZE1_4qZUz20GYxx7Xi5KZZjwJtv0YXGEqlhdRIu2IcqOkG7yi6F4eGXkiIjP6QA/s1600-h/06.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoXwP_o0WqK9cIMbRoDZ_nu8y-mqwILJzSdI_LoFOqPPqpA4WFaYfOuFxYvFGUEivYRiuuzssFFrXdZE1_4qZUz20GYxx7Xi5KZZjwJtv0YXGEqlhdRIu2IcqOkG7yi6F4eGXkiIjP6QA/s320/06.jpg&quot; alt=&quot;apex application deploy&quot; id=&quot;BLOGGER_PHOTO_ID_5069357743005302786&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;,где:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Current Workspace - Название текущей рабочей области&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Export File Workspace - Название рабочей области импортируемого файла экспорта&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Export File Workspace ID - Идентификатор рабочей области импортируемого файла экспорта&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Export File Application ID - Идентификатор приложения в импортируемом файле экспорта&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Export File Version - Версия файла экспорта&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Export File Parse As Schema - В рамках какой Oracle схемы выполнялся экспорт файла&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Application Origin - Происхождение приложения&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Parse As Schema - В рамках какой Oracle схемы будет выполнять разбор файла экспорта&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Build Status - Статус приложения после импорта. &quot;Run Application Only&quot; - с приложением можно только запускать на выполнение. &quot;Run and Build Application&quot; - приложение можно как выполнять, так и изменять&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Install As Application - Идентификатор для нового приложения. &quot;Auto Assign New Application ID&quot; - автоматическое присвоение нового значения для ID приложения. &quot;Reuse  Application ID ... From Export File&quot; - использование того ID приложения, который был у него во время экспорта. &quot;Change Application ID&quot; - изменить ID приложения вручную.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Все загруженные файлы хранятся в отдельном репозитарии, посмотреть который можно в &quot;Application Builder&quot; -&gt; &quot;Export Repository&quot;. То есть, даже если после развертывания приложение было удалено по каким - то причинам, его можно по-новой развернуть на сервере без повторного испортирта файл.&lt;br /&gt;Кроме возможности развертывания приложения, в репозитарии есть функция удаления файлов импорта. И если уж сам файл удален из репозитария, то для импорта приложения необходимо будет снова выполнить импорт файла на сервер.&lt;br /&gt;&lt;br /&gt;Если вдруг, во время установки приложения появилось сообщение:&lt;br /&gt;&lt;pre style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;b&gt;&lt;br /&gt;This page was exported from a different application or from an application in different workspace.&lt;br /&gt;Page cannot be installed in this application.&lt;/b&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;то необходимо проверить, что ID рабочей области (Workspace ID), откуда экспортировалось приложение, отличается от ID рабочей области, куда приложение устанавливается. В этом случае, надо просто изменить его в файле экспорта на значение Workspace ID, куда устанавливается приложение. Для этого, необходимо найти в начале файла экспорта следующую строку:&lt;br /&gt;&lt;pre&gt;wwv_flow_api.set_security_group_id(p_security_group_id=&gt; _Число_);&lt;/pre&gt;&lt;br /&gt;И заменить &quot;_число_&quot; на значение &quot;Workspace ID&quot;, куда устанавливается приложение. Если вы его по каким-либо причинам его не знаете, то просто экспортируйте что-нибудь из этой рабочей области и в начале файла экспорта, в той же строке, будет нужный идентификатор. То есть, приложения должны переноситься между серверами только в рамках одной и той же рабочей области.&lt;br /&gt;&lt;br /&gt;В заключении надо сказать, что Oracle Application Express позволяет экспортировать/импортировать не только приложение, но и отдельные его части: страницы , темы оформления, значения по умолчанию, CSS и т.д. В случае экспорта страницы из приложения, необходимо учитывать так же, что на новом сервере должны совпадать не только ID рабочей области, но ID приложения (документация на &lt;a href=&quot;http://download-uk.oracle.com/docs/cd/B32472_01/doc/appdev.300/b32471/deploy.htm#BIHJBCEC&quot;&gt;OTN&lt;/a&gt;).&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/5063209892886433901/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/5063209892886433901' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/5063209892886433901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/5063209892886433901'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/06/apex-2-import.html' title='Развертывание приложений Apex : часть 2 (Import)'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit40goCjXgJJiqAzGt4eJxbhQzeDofcXLQxRGsFHSV45zaOfNHTLo3XS2FqOh8sQwBAnIZHLKKCwiMb6Z1Dx3X6yJrovI8FOYUyvxDjK1MH5mkuSUALEXCskUU3pZROaT9GixgZ-lrLTI/s72-c/04.new.jpg" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-8054437926060054115</id><published>2007-05-30T00:19:00.000+04:00</published><updated>2007-06-17T16:47:46.863+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="deploy"/><category scheme="http://www.blogger.com/atom/ns#" term="tips"/><title type='text'>Развертывание приложений Apex : часть 1 (Export)</title><content type='html'>Как правило, процесс разработки ПО идет по следующему сценарию: Разработка (development) -&gt; Тестирование (testing) -&gt; Заказчик (deploy). То есть, в начале разрабатывается приложение в соответствии с заявленными требованиями, потом выполняется проверка на соответствие этим требованиям и заключительным этапом является развертывание приложения на стороне заказчика. При этом, на втором и третьем этапе необходимо развернуть приложение на новой площадке (для чистоты эксперимента). В Oracle Application Express этот процесс максимально автоматизирован &lt;span class=&quot;fullpost&quot;&gt; (чему, в основном, способствует именно &lt;a href=&quot;http://apex-dev.blogspot.com/2007/03/application-express.html&quot;&gt;архитектура Apex&lt;/a&gt; - когда, вся информация о приложении хранится в БД).&lt;br /&gt;&lt;br /&gt;Суть процесса хорошо описана в &lt;a href=&quot;http://download-uk.oracle.com/docs/cd/B32472_01/doc/appdev.300/b32471/deploy.htm#BABGJIAD&quot;&gt;документации&lt;/a&gt; и заключатеся в том, что Apex позволяет экспортировать всю необходимую информацию о приложении в файл и, соответственно, есть возможность импорта этого файла. Сам файл представляется из себя простой текст с DML операциями.&lt;br /&gt;&lt;br /&gt;Для того, чтобы экспортировать приложение, необходимо перейти в приложение и выбрать &quot;Export/Import&quot;-&gt;&quot;Export&quot;-&gt;&quot;Application&quot;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf0kpLLTPoFvL4mcyfRLFhzPalsVghjMa40BdFUmmEKsp35e56_92-9s_DRF90w0js6UmT5IeDheG3GqvGKOJLMm9z34qObkhs8TrH1mI-LysT654AhuxCFpAP1AM2WEPaOSUisel8E4c/s1600-h/01.new.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf0kpLLTPoFvL4mcyfRLFhzPalsVghjMa40BdFUmmEKsp35e56_92-9s_DRF90w0js6UmT5IeDheG3GqvGKOJLMm9z34qObkhs8TrH1mI-LysT654AhuxCFpAP1AM2WEPaOSUisel8E4c/s320/01.new.jpg&quot; alt=&quot;start to export apex application&quot; id=&quot;BLOGGER_PHOTO_ID_5069347782976143298&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;После чего, появится диалог экспорта приложения:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8sqnbGtJ8h2lqOCYhswOF77a0wjSyjEj6QZPaXyN_eV3uOywsw5YawIupqzuZVhfpgG4tgtLr5fNCRi_Slp8aLJdNiz5OM4_JEZqcczjo9Xe5ua-khqDfUEBN0KCfznXhltiPYJg-l7E/s1600-h/02.new.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8sqnbGtJ8h2lqOCYhswOF77a0wjSyjEj6QZPaXyN_eV3uOywsw5YawIupqzuZVhfpgG4tgtLr5fNCRi_Slp8aLJdNiz5OM4_JEZqcczjo9Xe5ua-khqDfUEBN0KCfznXhltiPYJg-l7E/s320/02.new.jpg&quot; alt=&quot;set apex application export settings&quot; id=&quot;BLOGGER_PHOTO_ID_5069347787271110610&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Где:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Application - идентификатор и название экспортируемого приложения&lt;/li&gt;&lt;br /&gt;&lt;li&gt;File Format - тип форматирования строк в файле: DOS/UNIX style &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Owner Override - пользователь, для которого будет в дальнешем импортировано приложение. Если не указано, то текущий &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Build Status Override - статус приложения после дальнейшего импорта. &quot;Run Application Only&quot; - приложение можно только запускать на выполнение. &quot;Run and Build Application&quot; - приложение можно как выполнять, так и дорабатывать&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Debugging - возможность использования встроенной отладки после дальнейшего импорта приложения&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Export Supporting Object Definitions - необходимость включаения в файл экспорта определения объектов БД, которые используются в приложении&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Export Comments - необходимость экспорта комментариев&lt;/li&gt;&lt;br /&gt;&lt;li&gt;As of - экспорт приложения по состоянию на указанное количество минут назад (используется функциональность пакета DBMS_FLASHBACK)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;File Character Set - кодировка, в которой выполняется экспорт &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;Результатом будет sql-файл, который можно проимпортировать на другой площадке.&lt;br /&gt;О том, как выполнять импорт файла приложения и о возможных &quot;непонятках&quot;, которые могут возникнуть в процессе импорта, будет рассказано в одной из следующих заметок...&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/8054437926060054115/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/8054437926060054115' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/8054437926060054115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/8054437926060054115'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/05/apex-1-export.html' title='Развертывание приложений Apex : часть 1 (Export)'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf0kpLLTPoFvL4mcyfRLFhzPalsVghjMa40BdFUmmEKsp35e56_92-9s_DRF90w0js6UmT5IeDheG3GqvGKOJLMm9z34qObkhs8TrH1mI-LysT654AhuxCFpAP1AM2WEPaOSUisel8E4c/s72-c/01.new.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-6965625835045936869</id><published>2007-05-26T00:56:00.000+04:00</published><updated>2007-06-07T11:35:29.797+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="performance"/><category scheme="http://www.blogger.com/atom/ns#" term="tips"/><category scheme="http://www.blogger.com/atom/ns#" term="translation"/><title type='text'>Повышаем производительность (часть 3)</title><content type='html'>Заканчиваем перевод статьи &lt;a href=&quot;http://www.oracle.com/technology/oramag/oracle/07-jan/o17browser.html?msgid=5276023&quot;&gt;Sizing Up Performance&lt;/a&gt;, начатый в постах &lt;a href=&quot;http://apex-dev.blogspot.com/2007/05/1.html&quot;&gt;&quot;Повышаем производительность (часть 1)&quot;&lt;/a&gt; и &lt;a href=&quot;http://apex-dev.blogspot.com/2007/05/2.html&quot;&gt;&quot;Повышаем производительность (часть 2)&quot;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;b&gt;Оптимизация элементов страниц&lt;/b&gt;&lt;br /&gt;Другими общедоступными возможностями настройки производительности приложений Oracle Appliccation Express являются такие элементы, как процессы(Page processes), вычисления(computations),авторизация(authorizations), валидация(validations) и условия (conditions). Производительность этих элементов на странице должна быть очевидной при работе приложения в режиме отладки (debug mode). Ниже приведены рекомендации для этих элементов страницы:&lt;br /&gt;&lt;br /&gt;Устанавливайте момент запуска процесса на уровне страницы (page processes) - один на страницу (per-page), а не на сессию. Если же используется процесс на уровне приложения (application-level processes) , то можно установить момент запуска - один на сессию (per session) или на показ страницы (page view). Имейте в виду, что использование опции по сессионного старта процесса уровня приложения, может повлиять на отображение всех страниц приложения.&lt;br /&gt;&lt;br /&gt;Оптимизируйте составляющие нулевой страницы (особенности этой страницы описаны &lt;a href=&quot;http://apex-dev.blogspot.com/2007/03/apex-page-0.html&quot;&gt;здесь&lt;/a&gt;). Компоненты этой страницы отображаются на каждой странице приложения, поэтому стоит уделить особое внимание оптимизации логики именно этой страницы. Объединяйте различные PL/SQL блоки в пакеты, то есть, если на странице есть большие PL/SQL блоки, то лучше перенести эти блоки в PL/SQL пакет и вызывать его из приложения.&lt;br /&gt;&lt;br /&gt;Используйте декларативные условия. Такия условия быстрее, чем динамический SQL или PL/SQL-условия. Например, использование условие типа &quot;Item=Value&quot; будет быстрее, чем использование PL/SQL-выражения &quot;:ITEM=value.&quot;&lt;br /&gt;&lt;br /&gt;Для отчетов, содержащих большое количество строк, лучше использовать нумерацию страниц типа &quot;Rows X to Y&quot;. Нумерация типа &quot;Rows X to Y of Z&quot; занимает больше времени на выполнение, чем простая нумерация типа &quot;Rows X to Y&quot;. Например, если в отчете, содержащем 900 строк, используется нумерация типа &quot;Rows X to Y of Z&quot;, Oracle Application Express будет должен выполнить полную выборку данных, чтобы установить количество строк. А при использовании нумерации типа &quot;Rows X to Y&quot;, будет необходимо выбрать только Y + 1 строку.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Выводы&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Использование представленного материала, поможет оценить производительность и масштабируемость приложений Oracle Application Express. Если производительность приложения оставляет желать лучшего, то использование выше представленных подсказок поможет установить самые медленные страницы и определить на них плохо реализованные компоненты. Используя данную информацию, можно будет гарантировать, что ваши приложения Oracle Application Express будут соответствовать заявленным требованиям по производительности.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/6965625835045936869/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/6965625835045936869' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/6965625835045936869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/6965625835045936869'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/05/3.html' title='Повышаем производительность (часть 3)'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-1619776076852062247</id><published>2007-05-23T23:45:00.000+04:00</published><updated>2007-06-06T11:52:13.350+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="performance"/><category scheme="http://www.blogger.com/atom/ns#" term="tips"/><category scheme="http://www.blogger.com/atom/ns#" term="translation"/><title type='text'>Повышаем производительность (часть 2)</title><content type='html'>Продолжаем перевод статьи &lt;a href=&quot;http://www.oracle.com/technology/oramag/oracle/07-jan/o17browser.html?msgid=5276023&quot;&gt;Sizing Up Performance&lt;/a&gt; о проблемах производительности в приложениях Oracle Application Express, начатый в предыдущем &lt;a href=&quot;http://apex-dev.blogspot.com/2007/05/1.html&quot;&gt;посте&lt;/a&gt;.&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;b&gt;Поиск и устранение узких мест&lt;/b&gt;&lt;br /&gt;Накладные расходы, связанные с созданием страницы в Apex, довольно статичны. Время потраченное на обработку SQL или PL/SQL кода, созданного разработчком, добавляется к тому, которое было использовано для генерации страницы. Используя &quot;Monitor Activity&quot;, можно легко определить наихудшие по производительности страницы приложений:&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHREGa1PYgmkJTXyJL-bkUdIONg7iVmoxRAZA4gx-zd0aFTdvGWi8vB4VzyxznnPy8r70wBPyvijeCDz_q2kmxPMVQs7BKircwkKFCpYFvSx5zraS79tGxt2Y9ia2yt9eYAVtUfRXzqyc/s320/MonAct.gif&quot; alt=&quot;Monitor Activity feature of Oracle Application Express&quot; id=&quot;BLOGGER_PHOTO_ID_5071560554422009874&quot; border=&quot;0&quot; /&gt;&lt;br /&gt;&lt;br /&gt;После того, как определена самая медленная страница приложения, можно изучить ее в режиме отладки, нажав ссылку &quot;Debug&quot; в панели инструментов разработчика.&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3gGHIwdcDnkl7whxqfLuYbax1SdoiOrfyVKWp8pteCyikTGB95jwQYCn-PJA78hXyJWct7Q42TZEsUHpd_KQakwhNb9OgkxBspvqR3MfVACBiWpS_HZ2HTAnW4UUx6n2tNjTtLLDF3cQ/s320/02.jpg&quot; alt=&quot;Debug link in the Oracle Application Express Developer Toolbar&quot; id=&quot;BLOGGER_PHOTO_ID_5071572734949261346&quot; border=&quot;0&quot; /&gt;&lt;br /&gt;&lt;br /&gt;В режиме отладки, отдновременно с выводом самой страницы, выводится и информация о затраченном на вывод времени: отражаются временные интервалы, соответствующие конкретным действиям Oracle Application Express, а так же такая дополнительная информация, как названия элементов страницы, вычисления, точки обработки.&lt;br /&gt;&lt;br /&gt;Найти узкое место по производительности на странице довольно просто, для этого достаточно лишь опредедлить скачек потраченного времени в отладочных сообщениях. Например, ниже следует кусок отладочных сообщений:&lt;br /&gt;&lt;pre&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;0.05: Region: Projects&lt;br /&gt;0.06: Show report&lt;br /&gt;0.06: Determine column headings&lt;br /&gt;0.06: Activate sort&lt;br /&gt;0.07: Parse query as: MIKE1&lt;br /&gt;0.07: Binding: &quot;:P24_SEARCH&quot;=&quot;P24_SEARCH&quot; value=&quot;&quot;&lt;br /&gt;0.07: Print column headings&lt;br /&gt;0.07: Rows loop: 15 row(s)&lt;br /&gt;0.18: Region: Icon View&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Очевиден скачек потраченного времени с 0.07 секунд до 0.18. Этот скачок свидетельствует о том, что запрос занимает 0.11 секунд на выполнение, которое в данном примере имеет значительную долю в общем времени вывода страницы и, таким образом, является отличной целью для оптимизации.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Настройка SQL&lt;/b&gt;&lt;br /&gt;Наиболее распространенной областью настройки является SQL. Движок Oracle Application Express выполняет разбор, связывание, непосредственное выполнение и получение результирующих данных SQL-запросов отчетов. Использование связанных переменных (bind variables) везде, где это возможно, избавляет от ненужного разбора и способствует повторному использованию планов SQL-запросов.&lt;br /&gt;&lt;br /&gt;Кроме того, необходимо убедиться, что для запроса используется оптимальный план. Для генерации плана запроса можно использовать &quot;Explain Plan&quot; в окне &quot;SQL Commands&quot;.&lt;br /&gt;&lt;br /&gt;Для более тщательного изучения каждого фрагмента SQL или PL/SQL кода на каждой странице, можно включить для нее SQL-трассировку. SQL-трассировка сгенерирует трейс файл на серевере, который можно будет проанализировать Oracle утилитой - TKPROF. (более подробную информацию об использовании TKPROF в Oracle Application Express можно найти в разделе &lt;a href=&quot;http://download-west.oracle.com/docs/cd/B32472_01/doc/appdev.300/b32471/debug.htm#BCGCIBJA&quot;&gt;Debugging an Application&lt;/a&gt; в &quot;Oracle Application Express User&#39;s Guide&quot;)&lt;br /&gt;(прим. автора - подробнее о связываемых переменных, планах выполнения, жестком/мягком разборе запросов и трассировке можно почитать в книге Т.Кайта &quot;Oracle для проффесионалов&quot;).&lt;br /&gt;&lt;br /&gt;... продолжение следует ...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/1619776076852062247/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/1619776076852062247' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/1619776076852062247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/1619776076852062247'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/05/2.html' title='Повышаем производительность (часть 2)'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHREGa1PYgmkJTXyJL-bkUdIONg7iVmoxRAZA4gx-zd0aFTdvGWi8vB4VzyxznnPy8r70wBPyvijeCDz_q2kmxPMVQs7BKircwkKFCpYFvSx5zraS79tGxt2Y9ia2yt9eYAVtUfRXzqyc/s72-c/MonAct.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-2934343048424178704</id><published>2007-05-19T22:25:00.000+04:00</published><updated>2007-06-03T00:19:28.394+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="performance"/><category scheme="http://www.blogger.com/atom/ns#" term="tips"/><category scheme="http://www.blogger.com/atom/ns#" term="translation"/><title type='text'>Повышаем производительность (часть 1)</title><content type='html'>Листал на днях &lt;a href=&quot;http://www.oracle.com/oramag/oracle/index.html&quot;&gt;Oracle Magazine&lt;/a&gt;, и наткнулся на давольно интересную статью &lt;a href=&quot;http://www.oracle.com/technology/oramag/oracle/07-jan/o17browser.html?msgid=5276023&quot;&gt;про оценку прозводительности приложений Apex&lt;/a&gt;. После беглого просмотра обратился к &lt;a href=&quot;http://www.oracle.com/global/ru/oramag/index.html&quot;&gt;русской редакции данного журнала&lt;/a&gt; и, к своему удивлению, обнаружил, что перевода ее нет :(. После недолгих раздумий решил исправить положение :)...&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;b&gt;Советы и методы для оптимальной производительности Oracle Application Express&lt;/b&gt;&lt;br /&gt;В силу того, что Oracle Application Express становится все более популярным, все больше пользователей ищут руководства по настройке производительности для Apex приложений. Ниже будет продемострирован быстрый и удобный способ для оценки и изменения производительности. Так же будет продемонстрировано, как идентифицировать и решать проблемы производительности. Ниже перечислены наиболее общие вопросы, которые будут освещены:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Какое количество оборудования, особенно сколько процессоров (CPU), будет необходимо для работы с заданной нагрузкой&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Какое количество пользователей будет поддерживать приложение&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Как локализовать узкие места в производительности&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Понимание понятия &quot;производительность&quot; в приложениях Oracle Application Express&lt;/b&gt;&lt;br /&gt;    Ключ к оптимальной производительности для большинства приложений Oracle Application Express заключается в том, чтобы сохранять среднее время отображения страницы относительно небольшим. Масштабирование линейно: приложение со среднем временем вывода страницы в 10 милисекунд может быть вызвано в 10 раз больше конкурирующими пользователями, чем приложение со среднем временем вывода страницы в 100 милисекунд.&lt;br /&gt;    Для беглой оценки производительности приложений Apex, можно использовать статистику собранную Apex&#39;ом, информация о которой доступна на странице &quot;Monitor Activity&quot;. Если предположить, что приложение хорошо оптимизировано, включая эффективный SQL и PL/SQL, то самым важным изменяемым фактором является количество процессоров (CPU).&lt;br /&gt;Например, предположим, что разрабатывается приложение, которое должно обеспечивать 1000 показов страниц в минуту. Для системы с двумя процессорами, приложение должно обеспечивать 500 показов страниц в минуту на один процессор или 8.33 показа в секунду/процессор. Для того, чтобы удовлетворить этим требованиям, необходимо, чтобы среднее время вывода страницы не превышало 120 милисекунд.&lt;br /&gt;Отношение между доступным числом процессоров и требуемым числом показов страниц в минуту, выраженное в среднем времени отклика на страницу, может быть отражено с помощью следующей формулы:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;(N*60)&lt;br /&gt;------ = A&lt;br /&gt;  P&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;, где:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;N - количество процессоров&lt;/li&gt;&lt;br /&gt;&lt;li&gt;P - количество показов страниц в минуту&lt;/li&gt;&lt;br /&gt;&lt;li&gt;A - среднее время отклика на страницу&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Используя это простое уравнение, можно выполнять оценку среднего времени отображения страницы для  обеспечения заданного числа показов страниц в минуту. Изменяя число процессоров или количество показов страниц в минуту, можно установить четкие целевые показатели для приложения.&lt;br /&gt;Кроме того, среднее время отображения страницы может помочь в предсказании влияния изменения размера пользователей, то есть, для того, чтобы определить количество пользователей, которое может обеспечивать приложение, начиная с первого определения количества запросов страниц в течение определенного периода времени.&lt;br /&gt;Например, если средняя сессия, включающая 50 показов страниц, занимает 10 минут,а приложение поддерживает отображение пяти страниц в минуту для обычной сессии, то если приложение масштабируется для обеспечения 1000 показов страниц в минуту, то приложение будет поддерживать 200 одновременных пользователей на сессию.&lt;br /&gt;    Если экстраполировать эти данные для оценки количества ежедневных пользователей, то давайте так же считать, что все пользователи находятся в одном часовом поясе и, что в среднем каждый пользователь использует две сессии в один восьмичасовой рабочий день, в результате чего имеем 100 страниц (2 * 50 страниц в сессии). Поскольку приложение масштабируется на 1000 показов страниц в минуту,то умножим число минут в восьми часах (480) на страницы в минуту (1000), чтобы определить, что приложение может обеспечивать 480000 показов страниц на каждые восемь часов, или 4800 пользователей.&lt;br /&gt;    Как правило, приложение необходимо масштабировать для самого загруженного часа, так как нагрузка может быть 100 страниц в минуту в течение дня, а может быть и 1000 просмотров страниц в минуту в час пик.&lt;br /&gt;    Другое правило состоит в том, что необходимо обеспечивать среднее время показа страницы 300 милисекунд или менее. Для высоко производительных приложений, с многими сотнями или тысячи пользователей, необходимо стремиться к среднему времени показа страницы 150 милисекунд или менее.&lt;br /&gt;&lt;br /&gt;... продолжение следует...&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/2934343048424178704/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/2934343048424178704' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/2934343048424178704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/2934343048424178704'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/05/1.html' title='Повышаем производительность (часть 1)'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1045816305977712294.post-9069455101623016345</id><published>2007-05-15T23:41:00.000+04:00</published><updated>2007-05-29T00:49:08.796+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="news"/><category scheme="http://www.blogger.com/atom/ns#" term="sqldeveloper"/><category scheme="http://www.blogger.com/atom/ns#" term="tips"/><title type='text'>Отчеты по Apex в SQL Developer</title><content type='html'>В одной из последних версий &lt;a href=&quot;http://www.oracle.com/technology/products/database/sql_developer/index.html&quot;&gt;SQL Developer&lt;/a&gt;  были добавлены несколько отчетов для Application Express. Таким образом, теперь есть возможность просматривать некоторую информацию об Apex приложениях прямо из IDE (хотя доступ к ней был и раньше, так как всегда были общедоступные взгляды APEX_%, но теперь не надо будет писать даже запросов :).&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXp7X9Z_Mzm9EGXOZ9izUteO72mqH0LLQADnQnoQ6VRHHXpMw0kiqL26gQi5ymoXaWCV5qtmBSY73xq69Arc7UwUkMEYbLLRzARNaP4OF0WF8pyYFPmlnC533SpMX8WgKfa-uTywBXhDI/s320/ishot-1.png&quot; alt=&quot;sqldeveloper apex reports&quot;/&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Однако, доступ к функциональности будет только с версии Apex 3.0.1, а пока будем получать:&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3kGDboHn03Xs5E3l73QE_KNVrQz-fkHnaZDRwHRrbPeKL5jnVpXkejjgNoI69FQoHX5NxNrEeYTqjr_KiXEW8qCuPhF58xxOzdugYiKQyOGRW39BgpjHMmWgpAlMOL0b7GB874FADsGM/s320/ishot-3.png&quot; alt=&quot;sqldeveloper message about apex version&quot;/&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Но, по слухам, осталось ждать не долго :)... поговаривают, что уже в конце мая-начале июня должен появиться новый патч для Apex.&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0876573933122504&quot;;
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = &quot;468x60_as&quot;;
google_ad_type = &quot;text_image&quot;;
//2007-04-11: http://apex-dev.blogspot.com/
google_ad_channel = &quot;6107414183&quot;;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apex-dev.blogspot.com/feeds/9069455101623016345/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1045816305977712294/9069455101623016345' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/9069455101623016345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1045816305977712294/posts/default/9069455101623016345'/><link rel='alternate' type='text/html' href='http://apex-dev.blogspot.com/2007/05/apex-sql-developer.html' title='Отчеты по Apex в SQL Developer'/><author><name>Timoshinin Evgeny</name><uri>http://www.blogger.com/profile/16019140023057398100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXp7X9Z_Mzm9EGXOZ9izUteO72mqH0LLQADnQnoQ6VRHHXpMw0kiqL26gQi5ymoXaWCV5qtmBSY73xq69Arc7UwUkMEYbLLRzARNaP4OF0WF8pyYFPmlnC533SpMX8WgKfa-uTywBXhDI/s72-c/ishot-1.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>