Hungry Mind , Blog about everything in IT - C#, Java, C++, .NET, Windows, WinAPI, ...

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

ICU quick starter

Часто бывает необходимо выполнить преобразование текста из одной кодировки в другую. Скажем, отослать на HTTP сервер строку в Windows-1251, а после декодировать ответ.

WinAPI как всегда выручает - функции MultiByteToWideChar и WideCharToMultiByte делают преобразование из UTF-16 в необходимую кодировку и обратно. Список поддерживаемых кодовых страниц велик, но нет механизма для получения идентификатора кодировки по имени. Поэтому я задался целью найти альтернативу этим функциям. И я ее нашел - библиотека ICU. Есть еще iconv, но меня она оттолкнула всей этой гнушной чепухой, не захотелось даже возиться. А вот ICU вполне прилежно поставляется с проектными файлами для свежайшей версии Visual Studio.

Собрать ICU проще простого:

  1. Скачиваем архив с исходными кодами со странички проекта, под колонкой ICU4C;
  2. Разворачиваем содержимое и открываем source\allinone\allinone.sln;
  3. Собираем обе конфигурации - Debug и Release;
  4. Запускаем bin\icuinfo.exe, проверяем, что ICU Initialization returned: U_ZERO_ERROR;
  5. Файл bin\icudtXY.dll должен быть внушительного размера - около 20 мегабайт.

    В случае получения ошибок U_FILE_ACCESS_ERROR или U_MISSING_RESOURCE_ERROR - проверяем размер файла. Если слишком маленький - пересобираем проект makedata, у меня один раз случилось подобное, долго не мог понять в чем дело. Нашел на сайте следующее:

    Why am I seeing a small ( only a few K ) instead of a large ( several megabytes ) data shared library (icudt)? Opening ICU services fails with U_MISSING_RESOURCE_ERROR and u_init() returns failure.

    ICU libraries always must link with the ICU data library. However, so that ICU can bootstrap itself, it first builds a 'stub' data library, in icu\source\stubdata, so that the tools can function. You should only use this in production if you are NOT using DLL-mode data access, in which case you are accessing ICU data as individual files, as an archive (.dat) file, or some other means. Normally, you should be using the larger library built from icu\source\data. If you see this issue after ICU has completed building, re-run 'make' in icu\source\data, or the 'makedata' project in Visual Studio.

Размер bin\icudtXY.dll можно уменьшить с помощью ICU Data Library Customizer. Файл icudt48l.dat из скачанного архива необходимо раскрыть в папку source\data\in (а может и source\data\out, точно не помню) и пересобрать проект makedata.

Рассмотрим пример использования этой замечательной библиотеки. Попытаемся получить строку Приветик, ICU! в кодировке Windows 1251, затем обратно в UTF-16 и сравнить с оригиналом:

#include "stdafx.h"
 
#include <cassert>
 
#include <unicode/ucnv.h>
#include <unicode/ucsdet.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
   const wchar_t * const sourceUTF16 = L"Приветик, ICU!";
   const size_t len = wcslen(sourceUTF16);
 
   UErrorCode uError(U_ZERO_ERROR);
 
   /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   UConverter * const pConverter = ucnv_open("windows-1251", &uError);
   if (U_FAILURE(uError)) {
      return -1;
   }
 
   /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   const char * const pszCharsetInternalName = ucnv_getName(pConverter, &uError);
   assert(U_SUCCESS(uError));
   assert(pszCharsetInternalName);
   const char * const pszCharsetIANAName = ucnv_getStandardName(pszCharsetInternalName, "IANA", &uError);
   assert(U_SUCCESS(uError));
   assert(pszCharsetIANAName);
 
   const size_t minCharSize = ucnv_getMinCharSize(pConverter);
   const size_t maxCharSize = ucnv_getMaxCharSize(pConverter);
 
   /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   const wchar_t *pSourceW = &sourceUTF16[0];
   const wchar_t * const pSourceLimitW = &sourceUTF16[len];
   
   char *targetEncoding = reinterpret_cast<char *>(_alloca(maxCharSize * (len + 1)));
   char *pTarget = &targetEncoding[0];
   const char * const pTargetLimit = &targetEncoding[len];
   ucnv_fromUnicode(pConverter, &pTarget, pTargetLimit, &pSourceW, pSourceLimitW, NULL, true, &uError);
   assert(U_SUCCESS(uError));
   *pTarget = '\0';
 
   /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   const char *pSource = &targetEncoding[0];
   const char * const pSourceLimit = &targetEncoding[len];
 
   wchar_t * const targetUTF16 = reinterpret_cast<wchar_t *>(_alloca(sizeof(wchar_t) * (len + 1)));
   wchar_t *pTargetW = &targetUTF16[0];
   const wchar_t * const pTargetLimitW = &targetUTF16[len];
   ucnv_toUnicode(pConverter, &pTargetW, pTargetLimitW, &pSource, pSourceLimit, NULL, true, &uError);
   assert(U_SUCCESS(uError));
   *pTargetW = L'\0';
 
   /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   ucnv_close(pConverter);
 
   return 0;
}

Разберем по порядку:

  1. Включение заголовочных файлов unicode/ucnv.h и unicode/ucsdet.h из папки include;
  2. Открытие конвертера функцией ucnv_open.

    В качестве параметра передаем имя кодовой страницы или ее аналог, один из многих альтернативных имен, поддерживаемых ICU.

  3. В отладочных целях получаем внутреннее и стандартное имена открытого конвертера функциями ucnv_getName и ucnv_getStandardName;
  4. Основная часть - аллокация памяти под результат и использование конвертера по назначению (функции ucnv_fromUnicode и ucnv_toUnicode);
  5. Освобождение ресурсов, закрытие конвертера функцией ucnv_close.

Линкеру понадобятся icuuc.lib и icuin.lib для успешного создания исполняемого файла. А ему, в свою очередь, - библиотеки icuuc48.dll, icudt48.dll и icuin48.dll для успешного запуска.

В результате выполнения получаем следующий результат:

ICU proof of concept

Easy reporting to Word, PDF, HTML

Тяжело работать с людьми, которые сами не знают, чего хотят. Еще хуже, если эти люди являются заказчиками программного обеспечения. Они требуют за копейки кнопку "Сделать все". А потом еще чуть-чуть. И я уже не первый раз наблюдаю эту ситуацию. А самое веселое, когда дело доходит до отчетов. Мы хотим, чтобы был дизайнер. А еще мы хотим, чтобы все было попроще. А еще мы не знаем, что это будут за отчеты, так что сделайте универсальное решение. И ломай потом голову.

Я считаю, что дизайнер стоит кучу денег, для его написания нужен не один человеко-год. И пока что не видел ни одного универсального решения, с которым пользователь ощущал бы себя не обезьяной. Наиболее приемлемый вариант - вбивать логику построения отчета в программу. Дешево и сердито! Ну, дальше изложу один из вариантов такого решения.

Для получения отчета нужно:

  1. Данные

    Строки, числа, даты необходимые для построения отчета.

  2. Шаблон

    Набор правил построения отчета.

  3. Процессор

    Механизм, преобразующий данные по правилам.

В самом сложном варианте эти компоненты создаются индивидуально для каждого отчета. Но, лучше, конечно, по-максимуму автоматизировать каждую часть и их взаимодействие. В идеале, шаблон редактируется с помощью developer-friendly designer, процессор является универсальным готовым решением, а данные представляют собой расширяемый формат, в который можно положить любые данные.

XML, XSLT 2.0 и Altova StyleVision

Итак, данные в формате XML преобразуются XSLT процессором в выходной файл.

Altova StyleVision является нашим самым главным фигурантом и помощником, он же developer-friendly designer. Это визуальный редактор, который позволяет получить на выходе XSLT 2.0 файл, преобразующий XML в HTML, RTF или PDF!

Я уже точно не помню, зачем понадобился именно XSLT 2.0, вероятно из-за каких-то фич дизайнера, но вот найти бесплатный процессор для Java было напряжно. Из коммерческих есть Oracle XML Developer's Kit, из некоммерческих - Saxon. Других не нашел! С .NET ситуация хуже, под него только Saxon. Ну, Saxon так Saxon!

Исходные данные

Исходные данные получаем из источника данных (БД, например) и формируем XML файл с определенной схемой, которая описывается в XSD. Механизм формирования не имеет значения, но, если данные качаются из БД, я бы предпочел возложить этот процесс на сервер (далее в примере я буду получать от любимой СУБД Oracle сразу XML, а если поднатужиться, то и файл с отчетом можно получить!).

Я буду использовать существующую схему SH (Sales History). Как ее установить написано здесь.

Итак, наш отчет будет выдавать некую информацию о клиенте - имя, фамилия, пол, дата рождения и т.д. StyleVision хочет видеть XSD схему документов, которые прийдется использовать в качестве данных. Схему можно создавать либо вручную, подгоняя потом под нее XML, либо построить по существующему XML. Все это, кстати умеет делать Altova XMLSpy. Вот моя схема (Customer.xsd):

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:simpleType name="T_Valid">
      <xs:restriction base="xs:string">
         <xs:enumeration value="I"/>
         <xs:enumeration value="A"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="T_Gender">
      <xs:restriction base="xs:string">
         <xs:enumeration value="M"/>
         <xs:enumeration value="F"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:complexType name="T_Customer">
      <xs:sequence>
         <xs:element ref="FirstName"/>
         <xs:element ref="LastName"/>
         <xs:element ref="Gender"/>
         <xs:element ref="YearOfBirth"/>
         <xs:element ref="Address"/>
         <xs:element ref="Valid"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="T_Address">
      <xs:sequence>
         <xs:element ref="Street"/>
         <xs:element ref="PostalCode"/>
         <xs:element ref="City"/>
         <xs:element ref="StateProvince"/>
         <xs:element ref="Country"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="YearOfBirth" type="xs:short"/>
   <xs:element name="Valid" type="T_Valid"/>
   <xs:element name="Street" type="xs:string"/>
   <xs:element name="StateProvince" type="xs:string"/>
   <xs:element name="PostalCode" type="xs:int"/>
   <xs:element name="LastName" type="xs:string"/>
   <xs:element name="Gender" type="T_Gender"/>
   <xs:element name="FirstName" type="xs:string"/>
   <xs:element name="Customer" type="T_Customer"/>
   <xs:element name="Country" type="xs:string"/>
   <xs:element name="City" type="xs:string"/>
   <xs:element name="Address" type="T_Address"/>
</xs:schema>

Соответственно, Oracle SQL запрос (в SQL Server этот запрос был бы на пару страниц неразбираемого текста):

SELECT XMLElement("Customer",
                  XMLElement("FirstName", c.cust_first_name),
                  XMLElement("LastName", c.cust_last_name),
                  XMLElement("Gender", c.cust_gender),
                  XMLElement("YearOfBirth", c.cust_year_of_birth),
                  XMLElement("Address",
                             XMLElement("Street", c.cust_street_address),
                             XMLElement("PostalCode", c.cust_postal_code),
                             XMLElement("City", c.cust_city),
                             XMLElement("StateProvince", c.cust_state_province),
                             XMLElement("Country",
                                        (SELECT country_name FROM sh.countries WHERE country_id = c.country_id)
                             )
                  ),
                  XMLElement("Valid", c.cust_valid)) AS DATA
  FROM sh.customers c
 WHERE c.cust_id = 43228

Вместо 43228, конечно, нужно сделать bindable переменную, но мне лень.

И его результат (Customer.xml):

<Customer>
   <FirstName>Abner</FirstName>
   <LastName>Everett</LastName>
   <Gender>M</Gender>
   <YearOfBirth>1957</YearOfBirth>
   <Address>
      <Street>117 West Gloucester Avenue</Street>
      <PostalCode>72059</PostalCode>
      <City>Los Angeles</City>
      <StateProvince>CA</StateProvince>
      <Country>United States of America</Country>
   </Address>
   <Valid>I</Valid>
</Customer>

Altova StyleVision

File -> New -> New from XML Schema / DTD..., указать путь к XSD файлу и желательно предоставить ему сразу файл-пример с данными, соответствующий этой схеме, конечно же.

После окончания создания шаблона (template.sps) нужно его сохранить в XSLT (transform-rtf.xslt): File -> Save Generated Files -> Save Generated XSLT-RTF File....

Saxon

What is Saxon?

The Saxon package is a collection of tools for processing XML documents. The main components are:

  • An XSLT 2.0 processor, which can be used from the command line, or invoked from an application, using a supplied API. This can also be used to run XSLT 1.0 stylesheets.
  • An XPath 2.0 processor accessible to applications via a supplied API.
  • An XQuery 1.0 processor that can be used from the command line, or invoked from an application by use of a supplied API.
  • An XML Schema 1.0 processor. This can be used on its own to validate a schema for correctness, or to validate a source document against the definitions in a schema. It is also used to support the schema-aware functionality of the XSLT and XQuery processors. Like the other tools, it can be run from the command line, or invoked from an application.
  • On the Java platform, when using XSLT, XPath, or XML schema validation, the API supported by Saxon is the JAXP API, which means it is possible for a Java application to switch between different XSLT, XPath, and XML Schema processors without changing the application code. At the time of writing, however, Saxon is still the only JAXP implementation that offers support for XSLT 2.0. Saxon offers two APIs for XQuery processing: its own native API, which has been present in the product for some time, and an early implementation of the XQJ specification which is under development as part of the Java Community Process.
  • On the .NET platform, Saxon offers an API that enables close integration with other services available from .NET, notably the XML-related classes in the System.Xml namespace. It isn't possible to use Saxon as a transparent plug-in replacement for the System.Xml.Xsl processor, because the API for the Microsoft engine using concrete classes rather than abstract interfaces. However, it is possible to use it as a functional replacement with minor changes to your application code.

Saxon implements XSLT 2.0, XPath 2.0, and XQuery 1.0 as defined in the final Recommendations of 23 January 2007. It also includes an implementation of the XML Schema 1.0 Recommendation.

Full details of Saxon's conformance to the specifications are provided in the Conformance section.

In addition, Saxon provides an extensive library of extensions, all implemented in conformance with the XSLT and XQuery Recommendations to ensure that portable stylesheets and queries can be written. These include the EXSLT extension libraries common, sets, math, and dates-and-times. Many of these extensions were pioneered in Saxon and have since become available in other products.

These extension functions are in general accessible from XQuery and XPath as well as XSLT, except where they depend on stylesheet information. Some extensions are available in Saxon-SA only.

Компиляция XSLT файла

Библиотека Saxon позволяет компилировать XSLT файл:

The term compile is stretching a point. The executable that is produced does not contain machine instructions, or even interpreted Java bytecode. It contains instructions in the form of a data structure that Saxon itself can interpret. Note that the format of compiled stylesheets is unlikely to be stable from one Saxon release to the next.

Можно, конечно, не компилировать, но я предпочитаю прятать исходники шаблона (в т.ч. из лицензионных соображений). Кстати, из-за этого на моей прошлой работе разработчику прийдется все переделывать с нуля - файлы шаблона и схемы безвозвратно утеряны с моим уходом (злобный смешок). Команда компиляции выглядит так:

java -cp d:\Development\Libs\Java\Saxon.v9\saxon9.jar net.sf.saxon.Compile transform-rtf.xslt transform-rtf.saxon

transform-rtf.xslt - входной файл, transform-rtf.saxon - выходной.

Java код

Все просто - подключение к БД, выполнение запроса, получение потока XML, загрузка скомпилированного шаблона, создание трансформера и преобразование XML в RTF.

 0: /**
 1:  *
 2:  */
 3: package com.chabster.reporting.app;
 4:
 5: import java.io.File;
 6: import java.io.InputStream;
 7: import java.sql.Connection;
 8: import java.sql.DriverManager;
 9:
10: import javax.xml.transform.*;
11: import javax.xml.transform.stream.StreamResult;
12: import javax.xml.transform.stream.StreamSource;
13:
14: import net.sf.saxon.Configuration;
15: import net.sf.saxon.PreparedStylesheet;
16: import oracle.jdbc.OraclePreparedStatement;
17: import oracle.jdbc.OracleResultSet;
18: import oracle.jdbc.driver.OracleDriver;
19: import oracle.sql.OPAQUE;
20:
21: /**
22:  * @author Chabster
23:  */
24: public class Startup
25: {
26:
27:   static String query = "SELECT XMLElement(\"Customer\",\r\n" +
28:         "                 XMLElement(\"FirstName\", c.cust_first_name),\r\n" +
29:         "                 XMLElement(\"LastName\", c.cust_last_name),\r\n" +
30:         "                 XMLElement(\"Gender\", c.cust_gender),\r\n" +
31:         "                 XMLElement(\"YearOfBirth\", c.cust_year_of_birth),\r\n" +
32:         "                 XMLElement(\"Address\",\r\n" +
33:         "                            XMLElement(\"Street\", c.cust_street_address),\r\n" +
34:         "                            XMLElement(\"PostalCode\", c.cust_postal_code),\r\n" +
35:         "                            XMLElement(\"City\", c.cust_city),\r\n" +
36:         "                            XMLElement(\"StateProvince\", c.cust_state_province),\r\n" +
37:         "                            XMLElement(\"Country\",\r\n" +
38:         "                                       (SELECT country_name FROM sh.countries WHERE country_id = c.country_id)\r\n" +
39:         "                            )\r\n" +
40:         "                 ),\r\n" +
41:         "                 XMLElement(\"Valid\", c.cust_valid)) AS DATA\r\n" +
42:         "  FROM sh.customers c\r\n" +
43:         " WHERE c.cust_id = 43228";
44:
45:   public static void main(String[] args) {
46:      try {
47:         DriverManager.registerDriver(new OracleDriver());
48:
49:         Connection conn = DriverManager.getConnection("jdbc:oracle:thin:chabster/***@localhost:1521/MAIN");
50:         OraclePreparedStatement preparedStmt = (OraclePreparedStatement) conn.prepareStatement(query);
51:
52:         OracleResultSet oraRS = (OracleResultSet) preparedStmt.executeQuery();
53:         oraRS.next();
54:         OPAQUE xmlObj = oraRS.getOPAQUE(1);
55:         Configuration configuration = new Configuration();
56:         InputStream xmlStream = xmlObj.getStream();
57:
58:         PreparedStylesheet preparedStylesheet = PreparedStylesheet.loadCompiledStylesheet(configuration, "transform-rtf.saxon");
59:
60:         Transformer transformer = preparedStylesheet.newTransformer();
61:         File outputFile = new File("out.rtf");
62:         Source xmlSource = new StreamSource(xmlStream);
63:         Result output = new StreamResult(outputFile);
64:
65:         transformer.transform(xmlSource, output);
66:
67:         xmlStream.close();
68:         oraRS.close();
69:         preparedStmt.close();
70:         conn.close();
71:      }
72:      catch (Exception ex) {
73:         ex.printStackTrace();
74:      }
75:   }
76: }

Выводы

Механизм прост и удобен для разработчика. Генерация файлов происходит быстро, поддерживаются основные форматы документов - HTML, RTF и PDF. Правда, есть и свои нюансы, связанные с ограниченными возможностями дизайнера Altova StyleVision. Например, если в отчет нужно вставить картинку из БД, то прийдется это писать частично вручную. Также минимальный размер генерируемого файла - 46 Kb! Плюс вечно плавающие стандарты W3C и отсутствие библиотек, которые их поддерживают.

Shared Source Solutions for Developers

Вот наткнулся на Майкрософтовский список свободно распостраняемых библиотек, примеров, дополнений и утилит.
Почти все ссылается на CodePlex.

Xtreme Toolkit Pro v11.20 ZWT

splash
Появился наконец после мучительных лет ожидания Xtreme Toolkit Pro v11.20 в исходниках. Щас посмотрю, что они там наделали. Прошлые версии уступали BCG по функциональности и, что более существенно, по качеству.

Ultimate Toolbox, Ultimate Grid и Ultimate TCP/IP стали бесплатными!

Welcome!

We are very happy to announce that we have made the decision to offer our commercial lineup of MFC libraries, including Ultimate Toolbox, Ultimate Grid, and Ultimate TCP/IP to the CodeProject.com community free of charge.

These are the full and complete libraries including source code, documentation, samples and examples.

The Ultimate Toolbox and line of related MFC libraries products have been powering professional MFC applications for more than 10 years. We realize that there is a very large number of users who are still coding new applications in Visual C++ and MFC and who are looking for effective and proven libraries to enhance their applications, as well as those with legacy.

Ultimate Toolbox, Ultimate Grid and Ultimate TCP/IP come with full source code, and are compatible with Microsoft Visual Studio versions 6.0 through 2005.

By releasing these long standing MFC libraries to the CodeProject.com community we hope that the libraries will continue to grow, evolve and provide a library of useful controls to the development community through the auspices of The Code Project and its members.

Обновления библиотеки Morgan's library - Oracle 11g наступает

Крайне приятно было получить письмо с благодарностями от Daniel A. Morgan, редактора библиотеки Morgan's library, за помощь в ее промоутинге. Пожалуй, это лучший мини-справочник по Oracle, который я встречал в сети. А теперь он непрерывно обновляется вкусностями 11g, которая не так давно стала доступна для скачивания (Linux версия). Наблюдая за помойным развитием сети хочется пожелать нам побольше таких замечательных ресурсов! Вот обновленная на дату публикации страничка:
Best Practice Built-in Functions Built-in Packages New in 11g
Topic Version Last Modified Comment
Active Session History 10gR2 08-Aug-2006 -
Add Binding Clause 10gR2 01-Nov-2006 -
ADDM Demo 10gR2 09-Aug-2006 -
Advanced Queuing Demo 10gR2 16-Jan-2005 -
Analytic Functions 10gR2 15-Jul-2007 -
Analyze 11gR1 09-Jul-2007 -
Anonymous Block 11gR1 07-Jul-2007 -
Anydata Data Type 11gR1 28-Jul-2007
Application Server 10.1.2.0.2 07-Feb-2007 -
Application Server 10.1.3.0.0 07-Feb-2007 -
Archive Logs 10gR2 03-Mar-2007 -
Array Processing 10gR2 03-Mar-2007 -
Arrays: Index by BINARY_INTEGER 11gR1 07-Jul-2007 -
Arrays: Index by VARCHAR2 11gR1 07-Jul-2007 -
AS OF Queries 10gR2 27-Apr-2007 -
ASH 10gR2 03-Mar-2007 -
Associative Arrays 11gR1 07-Jul-2007 -
Auditing 11gR1 06-Aug-2007
AUTHID 10gR2 12-Jan-2006 -
Automatic Workload Repository 11gR1 17-Aug-2007
Automatic Workload Repository Report 11gR1 17-Aug-2007
Autonomous Transactions 11gR1 07-Jul-2007 -
Autotrace 11gR1 08-Jul-2007 -
AWR Report 11gR1 17-Aug-2007 -
Backup & Recovery 10gR2 07-Mar-2006 -
B*Tree Indexes 10gR2 23-Jun-2006 -
Bidirectional Cursor 11gR1 06-Aug-2007
Bind Variables 11gR1 20-Jul-2007 -
Bitmap Indexes 10gR2 23-Jun-2006 -
Bitmap Join Indexes 10gR2 23-Jun-2006 -
Block Change Tracking 11gR1 20-Jul-2007
Block Dump 10gR2 12-Oct-2005 -
Built-in Packages 10gR2 25-May-2007 -
Buffer Pool 11gR1 15-Jul-2007 -
Bulk Binding / Bulk Collection 10gR2 03-Mar-2007 -
CASE Function 11gR1 15-Aug-2007 -
Cast Function 11gR1 21-Jul-2007 -
Chained Rows 11gR1 30-Jul-2007
Change Data Capture - Sync 10gR2 07-Jun-2006 -
Change Data Capture - HotLog 10gR2 07-Jun-2006 -
Change Data Capture - AutoLog 10gR2 - -
Character Sets 11gR1 30-Jul-2007 -
Character Set Functions 11gR1 21-Jul-2007 -
Check Constraint 10gR2 09-May-2007 -
Clustering Factor 11gR1 12-Aug-2007 -
Clusters 11gR1 20-Jul-2007
Codd's Rules - 07-Jul-2007 -
Collections 11gR1 21-Jul-2007
Collection Functions 10gR2 22-Nov-2005 -
Commit 11gR1 07-Jul-2007 -
Compilation: Interpreted and Native 11gR1 09-Aug-2007
Compound Triggers 11gR1 12-Aug-2007
Compressed Indexes 10gR2 23-Jun-2006 -
Compressed Tables 11gR1 11-Aug-2007
Conditional Compilation 10gR2 11-Sep-2005 -
Conditions 11gR1 08-Jul-2007 -
Connect By 11gR1 08-Jul-2007 -
Constraints 10gR2 06-May-2007 -
Consumer Groups 10gR2 03-Jan-2006 -
Contexts 10gR2 18-Nov-2005 -
Continue Statement 11gR1 09-Aug-2007
Control Files 10gR2 10-Oct-2005 -
Control Structures 11gR1 06-Aug-2007
Conversion Functions 11gR1 29-Jul-2007
Create Database 10gR2 21-Nov-2006 -
Create Schema 11gR1 08-Jul-2007 -
Cross Tabulation and Pivot Operator 11gR1 07-Jul-2007 -
CTX_DDL 10gR2 29-Apr-2007 incomplete
Cube 10gR2 09-Dec-2006 -
Cursor Sharing 10gR2 14-Dec-2006 -
Cursors & Cursor Loops 11gR1 06-Aug-2007
DANGLING 10gR2 08-Mar-2007 -
Data Control Language (DCL) 11gR1 07-Jul-2007 -
Data Dictionary 10gR2 15-Apr-2006 -
Data Files 10gR2 26-May-2007 -
Data Guard 10gR2 30-May-2007 Physical Only
Data Integrity 11gR1 29-Jul-2007
Data Mining Functions 10gR2 22-Nov-2005 -
Data Pump (API) 10gR2 - -
Data Pump (Executable) 10gR2 - -
Data Types & SubTypes 11gR1 09-Aug-2007 New SIMPLE_INTEGER
Database 10gR2 21-Nov-2006 -
Database Links 10gR2 08-Apr-2007 -
Date Functions 10gR2 06-Jun-2007 -
DBMSOBJG 11gR1 08-Jul-2007 -
DBMS_ADVANCED_REWRITE 11gR1 11-Aug-2007 -
DBMS_ADVISOR 10gR2 11-Aug-2007
DBMS_ALERT 11gR1 08-Jul-2007 -
DBMS_AMD 11gR1 08-Jul-2007 -
DBMS_APPLICATION_INFO 11gR1 08-Jul-2007 -
DBMS_APPLY_ADMIN 10gR2 01-Jun-2006 incomplete
DBMS_AQ 10gR2 20-Dec-2005 -
DBMS_AQADM 10gR2 03-Jul-2007 -
DBMS_AQELM 10gR2 20-Dec-2005 -
DBMS_ASSERT 11gR1 12-Aug-2007
DBMS_ASYNCRPC_PUSH 11gR1 08-Jul-2007 -
DBMS_AUTO_TASK_ADMIN 11gR1 09-Aug-2007
DBMS_AW_STATS 11gR1 19-Aug-2007
DBMS_CAPTURE_ADM 10gR2 07-Jun-2007 -
DBMS_CDC_PUBLISH 10gR2 23-Mar-2006 -
DBMS_CDC_SUBSCRIBE 10gR2 23-Mar-2006 -
DBMS_CHANGE_NOTIFICATION 10gR2 30-Apr-2007 -
DBMS_CLUSTDB 11gR1 08-Jul-2007 -
DBMS_COMPARISON 11gR1 09-Aug-2007
DBMS_CONNECTION_POOL 11gR1 12-Aug-2007
DBMS_CQ_NOTIFICATIONS 11gR1 19-Aug-2007
DBMS_CRYPTO 11gR1 11-Aug-2007
DBMS_CRYPTO_TOOLKIT_TYPES 11gR1 29-Jul-2007
DBMS_CSX_ADMIN 11gR1 20-Aug-2007
DBMS_DATAPUMP 10gR2 03-Jun-2007 -
DBMS_DBLINK 11gR1 29-Jul-2007 -
DBMS_DB_VERSION 10gR2 11-Sep-2005 -
DBMS_DBVERIFY 10gR2 11-Sep-2005 -
DBMS_DDL 10gR2 11-Sep-2005 -
DBMS_DDL_INTERNAL 11gR1 18-Aug-2007
DBMS_DESCRIBE 10gR2 11-Sep-2005 -
DBMS_DG 11gR1 11-Aug-2007
DBMS_DIMENSION 11gR1 11-Aug-2007
DBMS_DRS 10gR2 29-Nov-2006 -
DBMS_EDITIONS_UTILITIES 11gR1 11-Aug-2007
DBMS_ERRLOG 11gR1 29-Jul-2007
DBMS_EXPFIL 10gR2 11-Sep-2005 -
DBMS_EXTENDED_TTS_CHECKS 10gR2 11-Sep-2005 -
DBMS_FEATURE_USAGE 11gR1 17-Aug-2007 -
DBMS_FEATURE_USAGE_REPORT 11gR1 17-Aug-2007 -
DBMS_FGA 10gR2 11-Apr-2007 -
DBMS_FILE_TRANSFER 11gR1 09-Aug-2007 -
DBMS_FLASHBACK 11gR1 14-Aug-2007
DBMS_HA_ALERTS 11gR1 14-Aug-2007
DBMS_HA_ALERTS_PRVT 11gR1 14-Aug-2007 -
DBMS_HM 11gR1 18-Aug-2007
DBMS_HPROF 11gR1 09-Aug-2007
DBMS_I_INDEX_UTL 11gR1 09-Aug-2007
DBMS_INDEX_UTL 11gR1 09-Aug-2007
DBMS_INDEXING 11gR1 09-Aug-2007
DBMS_IOT 11gR1 17-Aug-2007
DBMS_IR 11gR1 18-Aug-2007
DBMS_JOB 10gR1 14-Apr-2005 See DBMS_SCHEDULER too
DBMS_LCR 11gR1 29-Jul-2007 -
DBMS_LDAP 10gR2 27-Nov-2006 -
DBMS_LOB 10gR2 15-Jul-2007 -
DBMS_LOCK 11gR1 18-Aug-2007 -
DBMS_LOGMNR 10gR2 08-May-2006 -
DBMS_METADATA 11gR1 11-Aug-2007
DBMS_MONITOR 10g 16-Oct-2006 -
DBMS_MVIEW 10gR2 20-Nov-2006 -
DBMS_NETWORK_ACL_ADMIN 11gR1 09-Aug-2007
DBMS_NETWORK_ACL_UTILITY 11gR1 09-Aug-2007
DBMS_OBFUSCATION_TOOLKIT - - Deprecated See DBMS_CRYPTO
DBMS_ODCI 11gR1 09-Aug-2007
DBMS_OUTLN 10gR2 30-May-2006 -
DBMS_OUTLN_EDIT 10gR2 30-May-2006 -
DBMS_OUTPUT 11gR1 10-Jul-2007 -
DBMS_PCLXUTIL 11gR1 10-Jul-2007 -
DBMS_PREDICTIVE_ANALYTICS 11gR1 13-Aug-2007
DBMS_PREPROCESSOR 11gR1 13-Aug-2007
DBMS_PROFILER 11gR1 20-Aug-2007 -
DBMS_PROPAGATION_ADM 10gR2 07-Jun-2007 -
DBMS_RANDOM 11gR1 10-Jul-2007 See DBMS_CRYPTO too
DBMS_RECTIFIER_DIFF 11gR1 10-Jul-2007 -
DBMS_RECTIFIER_FRIENDS 11gR1 10-Jul-2007 -
DBMS_REDEFINITION 10gR2 23-Jun-2007 -
DBMS_REFRESH 11gR1 20-Aug-2007
DBMS_REGISTRY 11gR1 09-Aug-2007
DBMS_REGISTRY_SERVER 10gR2 28-Nov-2006 -
DBMS_REGXDB 11gR1 20-Aug-2007 -
DBMS_REPAIR 10gR2 25-Sep-2006 -
DBMS_RESOURCE_MANAGER 10gR2 03-Jan-2006 -
DBMS_RESOURCE_MANAGER_PRIVS 10gR2 03-Jan-2006 -
DBMS_RESULT_CACHE 11gR1 09-Aug-2007
DBMS_RESUMABLE 10gR2 15-Nov-2005 -
DBMS_RLS 10gR2 16-Sep-2005 -
DBMS_ROWID 10gR2 22-Feb-2007 -
DBMS_SCHEDULER 10gR2 18-May-2006 -
DBMS_SCHEMA_COPY 10gR2 06-May-2006 -
DBMS_SERVER_ALERT 10gR2 01-Jan-2006 -
DBMS_SERVER_TRACE 10gR2 30-Nov-2006 -
DBMS_SERVICE 10gR2 17-Jan-2007 -
DBMS_SESSION 10gR2 23-Jun-2007 -
DBMS_SHARED_POOL 10gR2 25-Nov-2005 -
DBMS_SNAPSHOT 10gR2 08-Oct-2005 -
DBMS_SPACE 10gR2 25-Nov-2005 -
DBMS_SPACE_ADMIN 10gR2 15-Mar-2007 -
DBMS_SPM 11gR1 16-Aug-2007
DBMS_SQL 10gR2 30-Dec-2005 -
DBMS_SQLHASH 11gR1 29-Jul-2007
DBMS_SQLJTYPE 11gR1 19-Aug-2007
DBMS_SQLPA 11gR1 20-Aug-2007
DBMS_SQLPLUS_SCRIPT 10gR2 23-Mar-2007 -
DBMS_SQLTUNE 10gR2 11-Aug-2007
DBMS_STAT_FUNCS 10gR2 20-Dec-2006 -
DBMS_STATS 11gR1 09-Aug-2007
DBMS_STORAGE_MAP 11gR1 19-Aug-2007
DBMS_STREAMS 10gR2 07-Jun-2007 -
DBMS_STREAMS_ADM 10gR2 07-Jun-2007 -
DBMS_STREAMS_AUTH 10gR2 07-Jun-2007 -
DBMS_SUPPORT 10gR2 17-Mar-2007 -
DBMS_SYSTEM 10gR2 04-Dec-2006 -
DBMS_TDB 10gR2 01-Dec-2006 -
DBMS_TRACE 10gR2 16-Nov-2005 -
DBMS_TRANSACTION 10gR2 30-Dec-2005 -
DBMS_TRANSFORM 10gR2 26-Nov-2005 -
DBMS_TTS 10gR2 20-Nov-2005 -
DBMS_TYPES 11gR1 29-Jul-2007 -
DBMS_UNDO_ADV 11gR1 19-Aug-2007
DBMS_UTILITY 11gR1 10-Jul-2007 -
DBMS_WARNING 11gR1 06-Aug-2007
DBMS_WARNING_INTERNAL 11gR1 15-Jul-2007 -
DBMS_WM Synonym 10gR2 17-Dec-2005 -
DBMS_WORKLOAD_REPOSITORY 11gR1 17-Aug-2007
DBMS_XA 11gR1 13-Aug-2007
DBMS_XDBUTIL_INT 10gR2 09-Sep-2006 -
DBMS_XMLGEN 10gR2 15-Jul-2007 -
DBMS_XPLAN 11gR1 15-Aug-2007
DBMS_ZHELP 11gR1 13-Jul-2007 -
DBMS_ZHELP_IR 11gR1 13-Jul-2007 -
DBV (database verify) 10gR2 26-Nov-2005 -
DCL Statements 11gR1 29-Jul-2007 -
DDL Event Triggers 11gR1 19-Aug-2007
Deadlocks 11gR1 07-Jul-2007 -
DECODE Function 11gR1 15-Aug-2007
Delete Statement 11gR1 12-Aug-2007 -
Descending Indexes 10gR2 23-Jun-2006 -
Dimensions 10gR2 20-Nov-2006 -
Directories 11gR1 29-Jul-2007
DIUTIL 11gR1 11-Jul-2007 -
DML Statements 11gR1 07-Jul-2007 -
Dynamic Performance Views 10gR2 05-May-2007 -
Editions 11gR1 11-Aug-2007
Environment Variables 10gR2 30-Mar-2006 -
Errors 11gR1 30-Jul-2007
Exception Handling 10gR2 27-Feb-2007 -
Excluded Nodes 10g 15-Jun-2005 -
Exists 10gR2 24-Oct-2005 -
Explain Plan 11gR1 16-Aug-2007
Export 10gR2 16-Dec-2005 -
Expression Filtering 10g 28-Apr-2005 -
External Tables 10gR2 04-Jun-2007 -
Files Of Interest 11gR1 16-Aug-2007
Fine Grained Access Control (FGAC) 10gR2 16-Sep-2005 -
Flashback 11gR1 14-Aug-2007
Flashback Archive 11gR1 14-Aug-2007
Flashback Database 11gR1 14-Aug-2007
Flashback Drop 11gR1 14-Aug-2007
Flashback Query 11gR1 14-Aug-2007
Flashback Table 11gR1 14-Aug-2007 -
Flashback Transaction 11gR1 14-Aug-2007 -
Flashback Version 11gR1 14-Aug-2007 -
FOLLOWS Clause (Triggers) 11gR1 12-Aug-2007
FOR UPDATE 10gR2 26-Nov-2005 -
FORALL 10gR2 03-Mar-2007 -
Foreign Key Constraint 10gR2 09-May-2007 -
FORMs 10g 24-Jan-2005 -
Function Based Indexes 10gR2 23-Jun-2006 -
Functions: Miscellaneous 11gR1 19-Aug-2007
Functions: User Defined 11gR1 18-Aug-2007 -
Fusion MiddleWare Application Server 10.1.2.0.2 02-Jan-2007 -
Fusion MiddleWare Application Server 10.1.3.0.0 02-Jan-2007 -
Global Hints 10gR2 22-Aug-2006 -
Global Partitioned Indexes 10gR2 25-May-2007 -
Global Temporary Tables 11gR1 29-Jul-2007
Globalization Toolkit 10gR2 25-Oct-2005 -
Grid Control 10gR2 07-May-2007 -
GROUP BY Clauses 10gR2 09-Dec-2006 -
GROUPING SETS 10gR2 09-Dec-2006 -
Guaranteed Restore Point 11gR1 29-Jul-2007
GV$ Views 10gR2 05-May-2007 -
HAVING Clauses 10gR2 09-Dec-2006 -
Heap Tables 10gR2 11-Aug-2007
Hints 10gR2 17-Mar-2007 incomplete
Histograms 10gR2 15-Apr-2006 -
Host Environment 10gR2 29-Sep-2006 -
HTP 10gR2 16-Jun-2006 -
IF Statements 11gR1 06-Aug-2007
Import 10gR2 16-Dec-2005 -
Indexes 10gR2 23-Jun-2006 -
Index Organized Tables (IOT) 10gR2 29-May-2006 -
Init SID Dot Ora 10gR2 04-Apr-2007 -
Inline Views 10gR2 24-Nov-2006 -
Insert Statements 11gR1 12-Aug-2007
Instead-Of Triggers 10gR2 06-Aug-2007
Instring Function 11gR1 27-Jul-2007 -
Intermedia Audio 10g 21-Jul-2004 -
Intermedia Video 10g 21-Jul-2004 -
Interval 11gR1 01-Aug-2007
Invisible Indexes 11gR1 09-Aug-2007
Invited Nodes 10g 15-Jun-2005 -
Joins 10gR2 21-Nov-2005 -
Keep Pool 11gR1 15-Jul-2007 -
Killing Sessions 10gR2 16-Jan-2005 -
Licensing 10gR2 30-Sep-2006 -
Listener 10gR2 30-Sep-2006 -
LOB_Compression 10gR2 25-Oct-2005 -
Local Partitioned Indexes 10gR2 25-May-2007 -
Locks 10gR2 24-Feb-2005 -
Log Files 10gR2 08-Nov-2006 -
LONG To CLOB 10gR2 26-Nov-2005 -
Loops 11gR1 06-Aug-2007
LT Built-in Package 10gR2 17-Dec-2005 -
Materialized Views 10gR2 02-Jan-2007 -
Merge Statement 11gR1 12-Aug-2007
Microsoft SQL Server 2005 Comparison - 24-Apr-2007 -
Microsoft Vista Enterprise and Oracle - 21-Apr-2007 -
Model Clause 10g 09-Dec-2006 -
Multiset 10gR2 18-Nov-2005 -
Multiversion Concurrency Control (MVCC) 10gR2 27-Sep-2006 -
Native Compilation 11gR1 09-Aug-2007
Native Dynamic SQL (NDS) 10gR2 03-Dec-2005 -
Nested Loops 10gR2 02-Mar-2007 -
Nested Tables 10gR2 05-Dec-2005 -
Nested Table Constraints 10gR2 09-Dec-2006 -
Net Services 10g 03-May-2005 -
Network Appliance Filer Management - 16-Jan-2007 -
NID (change internal database identifier) 10gR2 26-Nov-2005 -
No Segment Indexes 10gR2 23-Jun-2006 -
NOCOPY 10gR2 12-Jan-2006 -
Normalization - 28-May-2007 -
NOWAIT 10gR2 26-Nov-2005 -
Numeric Functions 10gR2 15-Dec-2006 -
NULL 10gR2 03-Feb-2007 -
NULL Pruning 10gR2 15-Apr-2006 -
Object Privileges 10gR2 26-Nov-2005 -
Object-Relational Views 10g 17-Nov-2004 -
Operators: Built-in 10gR2 29-Nov-2005 -
Operators: User Defined 10gR2 01-Nov-2006 -
ORA_HASH 11gR1 13-Jul-2007 -
ORA_NAME_LIST_T 10gR2 16-Jun-2006 -
ORA_ROWSCN 11gR1 19-Aug-2007
ORADEBUG 10gR2 08-Aug-2006 -
ORADIM 10gR2 23-Nov-2005 -
ORAPWD 10gR2 13-Jul-2006 -
ORDER BY Clause 11gR1 07-Jul-2007 -
Outlines 10gR2 30-May-2007 -
OUTLN_EDIT_PKG 10gR2 30-May-2006 -
OUTLN_PKG 10gR2 30-May-2006 -
OWA_CUSTOM 10gR2 05-Mar-2007 -
OWA_CX 10gR2 19-Mar-2007 -
OWA_OPT_LOCK 10gR2 14-Jan-2007 -
OWA_SEC 10gR2 06-May-2007 -
OWA_TEXT 10gR2 06-May-2007 -
OWA_UTIL 10gR2 16-Jul-2007 -
Packages: User Defined 10gR2 29-Mar-2007 -
Parent Correlation Name 11gR1 06-Aug-2007
Partitioning (tables and indexes) 10gR2 25-May-2007 -
Partitioning Elimination Demo 10gR2 25-May-2007 -
Partitioning Pruning Demo 10gR2 25-May-2007 -
Pipelined Table Functions 10gR2 15-Mar-2007
Pivot 11gR1 15-Aug-2007
PLSQL_CCFLAGS 10gR2 11-Sep-2005 -
PL/Scope 11gR1 18-Aug-2007
PL/SQL Object Settings 11gR1 09-Aug-2007
PRAGMAS 10gR2 16-Dec-2006 -
PRAGMA Autonomous_Transaction 10gR2 16-Sep-2005 -
PRAGMA Exception_Init 10gR2 26-Nov-2005 -
PRAGMA Serially Reusable 10gR2 17-Jul-2005 -
Primary Key Constraint 10gR2 09-May-2007 -
Procedures 11gR1 18-Aug-2007
Product User Profiles 10gR2 30-Nov-2005 -
Profiles 11gR1 13-Jul-2007 -
Protocol.ora 10gR2 03-May-2005 Deprecated See: SQLNET.ORA
Pseudo Columns 10gR2 19-Aug-2007
Public Synonyms 11gR1 21-Jul-2007
Purge Recyclebin 11gR1 14-Aug-2007 -
Purge Table 10gR2 08-Mar-2006 -
Quote Delimiters 10gR2 10-Jul-2006 -
RAC 10gR2 31-Jul-2006 -
RAID 10gR2 16-Jan-2005 -
Rank 10gR2 30-Nov-2005 -
RDA 10gR2 05-Oct-2006 -
Real Application Clusters 10gR2 16-Jan-2006 -
Recycle Bin 11gR1 14-Aug-2007
Recycle Pool 11gR1 15-Jul-2007 -
Redo 10gR2 23-Mar-2007 -
Ref Cursors 10gR2 05-Dec-2005 -
Referential Constraint 10gR2 09-May-2007 -
Regular Expressions 10gR2 15-Jul-2007 -
Remote Diagnostic Agent 10gR2 05-Oct-2006 -
Replace Built-in Function 11gR1 07-Aug-2007
Restore Point 11gR1 29-Jul-2007
Resumable Transactions 10gR2 15-Nov-2005 -
Reverse Key Indexes 10gR2 23-Jun-2006 -
Rewrite Equivalence 10gR2 11-Sep-2005 -
RMAN 10gR2 26-Apr-2006 incomplete
RMAN Demo 10gR2 19-Mar-2006 incomplete
Roles 10gR2 28-Nov-2005 -
Rollback 11gR1 07-Jul-2007 -
Rollup 10gR2 09-Dec-2006 -
ROWDEPENDENCIES 10gR2 27-Nov-2005 -
ROWID 10gR2 27-Nov-2005 -
Row Level Security 10gR2 16-Sep-2005 -
ROWNUM 10gR2 27-Nov-2005 -
Rule Based Optimizer (RBO) 10g 16-Apr-2004 Deprecated
Sample Clause 10gR2 12-Jul-2006 -
Savepoint 11gR1 07-Jul-2007 -
Schema 11gR1 08-Jul-2007 -
Select Statement 10gR2 10-Aug-2007
Sequences 11gR1 11-Aug-2007
Services 10gR2 26-Nov-2005 -
Sessions 10gR2 24-Feb-2006 -
Set Operators 10gR2 29-Nov-2005 -
SHOW 10gR2 22-Dec-2006 -
SKIP LOCKED 10gR2 26-Nov-2005 -
SLEEP 10gR2 28-Feb-2007 -
Snapshots 10gR2 30-Apr-2006 -
Sorted Hash Clusters 10gR2 26-Feb-2007 -
Soundex 10gR2 16-Sep-2006 -
SPFile 10gR2 26-Jan-2007 -
SQL Injection 10gR2 05-Mar-2007 -
SQL*Loader 10gR2 03-May-2007 -
SQL*Plus 10gR2 21-Apr-2007 -
SQLNET.ORA 10gR2 03-May-2005 -
Standard 10gR2 16-Sep-2006 -
Starting & Stopping The Database 10gR2 16-Jul-2007 -
Startup Parameters 10gR2 05-Apr-2007 -
Stored Outlines 10gR2 19-May-2007 -
Stored Procedures 10gR2 21-Nov-2005 -
Storage - 19-Oct-2006 -
Streams Demo 1 10gR2 07-Jun-2007 -
Streams Demo 2 10gR2 - -
String Functions 10gR2 07-Mar-2007 -
Subqueries 10gR2 24-Oct-2005 -
Substring Function 11gR1 27-Jul-2007 -
Sybase ASE 15.0.1 Comparison - 26-Jan-2007 -
Synonyms 11gR1 21-Jul-2007
SYS_CONTEXT Built-in Function 11gR1 19-Aug-2007
SYS_GUID 11gR1 09-Dec-2006 -
SYS_OP_DESCEND 10gR2 16-Jun-2006 -
SYS_OP_DISTINCT 10gR2 09-Mar-2007 -
SYS_OP_GUID 10gR2 27-May-2007 -
SYS_OP_LBID 10gR2 16-Jun-2006 -
SYS_OP_MAP_NONNULL 10gR2 09-Sep-2006 -
SYS_OP_RAWTONUM 10gR2 09-Mar-2007 -
SYS_OP_RPB 10gR2 07-Mar-2007 -
SYS_OP_TOSETID 10gR2 07-Mar-2007 -
SYS_TYPEID 11gR1 29-Dec-2006 -
System 10gR2 03-Dec-2006 -
System Events 10gR2 11-Feb-2007 -
System Event Triggers 11gR1 29-Jul-2007
System Privileges 11gR1 20-Aug-2007
System Statistics 10gR2 25-Feb-2007 -
Table Collection Expression 11gR1 21-Jul-2007
Tables 10gR2 11-Aug-2007
Table Triggers 11gR1 12-Aug-2007
Tablespaces 10gR2 15-Jul-2007 -
Tablespace Groups 10gR2 06-Jan-2006 -
Timestamp 11gR1 01-Aug-2007
Time Zones 11gR1 01-Aug-2007
TKPROF 10gR2 07-May-2007 -
Total Recall 11gR1 09-Aug-2007
Trace File Identifier 10gR2 26-Sep-2006 -
Tracing 10gR2 07-May-2007 -
Transactions 11gR1 07-Jul-2007 -
Translate Built-in Function 11gR1 07-Aug-2007
Transportable Tablespaces 10gR2 07-Jan-2006 -
Truncate (Tables & Partitions) 11gR1 30-Jul-2007
Tuning 10gR2 05-Mar-2007 -
Types 10g 16-Apr-2004 -
Undocumented Oracle 10gR2 29-May-2007 -
UNIX / vi - 15-Jul-2007 -
Unique Constraint 10gR2 09-May-2007 -
Unpivot 11gR1 15-Aug-2007
Update Statement 11gR1 12-Aug-2007
USERENV 11gR1 02-Dec-2005 See SYS_CONTEXT
Users 10gR2 06-Aug-2007
USER_LOCK 11gR1 27-Jul-2007
Utilities 10gR2 21-Mar-2007 -
UTL_COLL 11gR1 29-Jul-2007 -
UTL_COMPRESS 11gR1 29-Jul-2007
UTL_ENCODE 10gR2 13-Nov-2005 -
UTL_FILE 10gR2 25-Oct-2005 -
UTL_GDK 10gR2 29-May-2007 -
UTL_HTTP 10gR2 09-Jun-2006 -
UTL_I18N 11gR1 27-Jul-2007
UTL_INADDR 11gR1 07-Jul-2007 -
UTL_LMS 11gR1 07-Jul-2007 -
UTL_MAIL 11gR1 11-Aug-2007 -
UTL_MATCH 10gR2 12-Nov-2005 -
UTL_RAW 10gR2 30-Mar-2007 -
UTL_RECOMP 11gR1 30-Jul-2007
UTL_REF 10gR2 16-Jan-2006 -
UTL_SMTP 10gR2 12-Nov-2005 Deprecated: See UTL_MAIL
UTL_TCP 11gR1 12-Aug-2007 -
UTL_URL 11gR1 11-Aug-2007 -
Varrays 10gR2 03-Dec-2005 -
VERSIONS BETWEEN 10gR2 27-Nov-2005 -
Views 11gR1 07-Jul-2007 -
Virtual Columns 11gR1 09-Aug-2007
Virtual Indexes 10gR2 23-Jun-2006 -
Virtual Private Database 10gR2 16-Sep-2005 -
V$ Views 10gR2 05-May-2007 -
WAIT 10gR2 26-Nov-2005 -
Where Clause 11gR1 29-Jul-2007
Wildcards 10gR2 26-Nov-2005 -
Windows 10gR2 28-Apr-2006 -
WITH Clause 10gR2 15-Jul-2007 -
Workspace Manager 10gR2 17-Dec-2005 -
WPG_DOCLOAD 10gR2 25-Jul-2006 -
Wrap 10gR2 26-Nov-2005 -
Write CLOB to file 10gR2 25-Jul-2006 -
XML Functions 10gR2 28-May-2007 -
XMLQuery 10gR2 16-Sep-2005 -
XMLTable 10gR2 16-Sep-2005 -
XMLTYPE 11gR1 14-Jul-2007 -
XML Tables 10gR2 16-Sep-2005 -
Library Key: Version = Highest version number tested Red date = altered in last 30 days in last 30 days changed in last 30 days
This is site maintained by the Puget Sound Oracle Users Group.
Copyright 2007-2011 Chabster