clob oracle что это

Русские Блоги

Значение и различие типов данных больших объектов blob, clob, nclob в Oracle

Один, blob 、 clob 、 nclob Что означает?

3 . LOB Есть несколько типов, в зависимости от типа байтов, которые вы используете, Oracle 8i Действительно сохранить эти данные в базе данных для сохранения. Специальные операции, такие как чтение, хранение и запись могут быть выполнены.

4 . CLOB(Character Large Object) Используется для хранения символьных данных, соответствующих набору символов, определенному базой данных. (Похожий на long Типы)

5 . BLOB(Binary Large Object) Может использоваться для хранения неструктурированных двоичных данных. (Похожий на row с long row )

два, LOB из BLOB 、 CLOB 、 BFILE Каковы различия и для чего они используются? Как это сделать?

LOB Состоит из двух частей: данные (значение) и указатель на данные (локатор). Хотя значение хранится в самой таблице, но один LOB Столбец не содержит значения, только его позиционный указатель. Кроме того, чтобы использовать большие объекты, программа должна объявить локальные переменные типа локатора. когда LOB (Помимо BFILE ) Когда он создается, локатор сохраняется в столбце, значение сохраняется в LOB В этом абзаце LOB Сегменты являются частью таблиц в базе данных. когда BFILE При создании локатор сохраняется в столбце как обычно.

три, blob с clob Какой максимум? Или нет максимального ограничения?

Их максимальный предел 4G , Clob Может хранить однобайтовые символьные данные, Blob Может хранить неструктурированные двоичные данные.

Источник

Большие объекты данных в PL/SQL: BLOB, CLOB, NCLOB и BFILE

Oracle и PL/SQL поддерживают несколько разновидностей типов данных, предназначенных специально для работы с большими объектами ( LOB, Large OBjects ). Такие объекты позволяют хранить огромные (от 8 до 128 терабайт) объемы двоичных (например, графических) или текстовых данных.

До выхода Oracle9i Release2 в объектах LOB можно было хранить до 4 Гбайт данных. Начиная с Oracle10g, ограничение было повышено до величины от 8 до 128 терабайт (конкретное значение зависит от размера блока вашей базы данных).

В PL/SQL можно объявлять большие объекты четырех типов:

Большие объекты можно разделить на две категории: внутренние и внешние. Внутренние большие объекты (типы BLOB, CLOB и NCLOB ) хранятся в базе данных и могут участвовать в транзакциях на сервере базы данных. Внешние большие объекты (тип BFILE ) представляют двоичные данные, хранящиеся в файлах операционной системы вне таблиц базы данных. Они не могут участвовать в транзакциях, то есть вносимые в них изменения нельзя сохранить или отменить в зависимости от результата транзакции. Целостность данных обеспечивается только на уровне файловой системы. Кроме того, повторное чтение из BFILE может приводить к разным результатам — в отличие от внутренних больших объектов, соответствующих модели логической целостности чтения.

LONG И LONG RAW

Источник

/привет/мир/etc

Непериодические заметки о программировании

понедельник, 25 мая 2015 г.

О работе с большими объектами в СУБД Oracle

Указанные типы данных можно использовать в СУБД Oracle для определения столбцов таблиц, атрибутов объектных типов и переменных PL/SQL.

Вот краткая характеристика этих типов:

Итак, по месту хранения LOB’ы делятся на

а по содержанию на

Для работы с LOB’ами cоздам таблицу со столбцами соответствующих типов:

Вместе с таблицей были созданы сегменты для хранения больших объектов:

Значение типа LOB может быть

Пустые LOB значения создаются функциями EMPTY_CLOB и EMPTY_BLOB :

Начиная с версии Oracle 9i в SQL и PL/SQL поддерживается неявная конвертация между (N)CLOB и VARCHAR2, что позволяет манипулировать значениями в (N)CLOB столбцах и переменных так, как будто это значения типа VARCHAR2:

Как видим, функции и операторы, работающие с VARCHAR2, перегружены для типа (N)CLOB! При этом преодолеваются ограничения в 4000 символов, свойственные SQL типу VARCHAR2:

А вот операторы сравнения для (N)CLOB работают только в PL/SQL и не работают в SQL:

Выше я воспользовался функциями TO_NCLOB и TO_CLOB для явной конвертации значений VARCHAR2 в значения (N)CLOB. В следующей таблице представлены все функции для конвертации в LOB типы и обратно:

Функция Где работает
TO_CLOB(character_data) SQL и PL/SQL
TO_BLOB(raw_data) SQL и PL/SQL
TO_LOB(long_data) SQL and PL/SQL
TO_NCLOB(character_data) SQL и PL/SQL
TO_RAW(blob_data) только PL/SQL

Как видим, функция TO_RAW недоступна в SQL и, отсюда, возможности конвертации между BLOB и RAW в SQL ограничены. Например:

Зато в PL/SQL работают явная и неявная конвертации между BLOB и RAW:

Рассмотренные возможности по работе со значениями LOB как с VARCHAR2 получили название SQL семантика для LOB’ов (SQL semаntics for LOBs). С их использованием связаны некоторые ограничения, как мы увидим ниже.

С точки зрения PL/SQL большие объекты делятся на:

В вышеприведенных примерах с PL/SQL мы имели дело с временными LOB’ами.

Изменения внутренних постоянных LOB’ов (в отличие от внешних или временных) в СУБД Oracle подчиняются транзакциям. Убедимся в этом, отменив только что сделанные изменения:

Типичный алгоритм для чтения или изменения постоянного LOB’а с помощью PL/SQL таков:

Приведу пример выгрузки данных из постоянного CLOB’а во внешний файл. Для доступа к внешним файлам потребуется создать директорию, например:

Альтернативно, можно выгрузить CLOB во внешний файл, пользуясь SQL семантикой для LOB и не прибегая к DBMS_LOB :

Тип данных BFILE содержит указатель на внешний файл, который

Пример чтения BFILE и записи во временный BLOB:

Процедура / Функция Что делает
FILEGETNAME возвращает имя директории и файла BFILE
FILEEXISTS проверяет, что файл BFILE существует
FILEOPEN открывает файл BFILE
FILEISOPEN проверяет, что файл BFILE открыт
FILECLOSE закрывает файл BFILE
FILECLOSEALL закрывает все открытые в сеансе файлы BFILE

Вместо чтения BFILE по частям пакет DBMS_LOB позволяет

Пример загрузки текстового файла во временный CLOB (аналогично можно загрузить и в постоянный CLOB):

Приведу неполный список процедур и функций DBMS_LOB для чтения, анализа и изменения значений BLOB, CLOB и NCLOB:

Процедура / Функция Что делает
APPEND добавляет один LOB в конец другого
COPY копирует все или часть содержимого LOB’а в другой LOB
ERASE удаляет все или часть содержимого LOB’а
GETLENGTH возвращает размер LOB’а
INSTR ищет «подстроку» в LOB’е
ISOPEN проверяет, открыт ли LOB
ISTEMPORARY проверяет, временный ли LOB
READ читает данные LOB’а
SUBSTR получает «подстроку» из LOB’а
TRIM сокращает размер LOB’а до указанного
WRITE записывает данные в LOB
WRITEAPPEND записывает данные в конец LOB’а

Следующий эксперимент покажет разницу между внутренними и внешними постоянными LOB’ами. Помещу в поле bfile_col таблицы lobs_tab объект BFILE и скопирую единственную строку таблицы во вторую строку:

Читайте также:  черные точки на лбу что делать

Команда INSERT привела к тому, что значения bfile_col в обеих строках связаны с одним и тем же внешним файлом, и его изменение отразится на обоих значениях.

Аналогично, при присваивании BLOB и (N)CLOB переменных в PL/SQL мы получаем независимые копии LOB’ов:

Источник

9 SQL Semantics and LOBs

This chapter describes SQL semantics that are supported for LOBs. These techniques allow you to use LOBs directly in SQL code and provide an alternative to using LOB-specific APIs for some operations.

This chapter contains these topics:

Using LOBs in SQL

You can access CLOB and NCLOB datatypes using SQL VARCHAR2 semantics, such as SQL string operators and functions. ( LENGTH functions can be used with BLOB datatypes as well as CLOB and NCLOB s.) These techniques are beneficial in the following situations:

When performing operations on LOBs that are relatively small in size (up to about 100K bytes).

After migrating your database from LONG columns to LOB datatypes, any SQL string functions, contained in your existing PL/SQL application, will continue to work after the migration.

SQL semantics are not recommended in the following situations:

When you need to use advanced features such as random access and piecewise fetch, you should use LOB APIs.

When performing operations on LOBs that are relatively large in size (greater than 1MB) using SQL semantics can impact performance. Using the LOB APIs is recommended in this situation.

SQL semantics are used with persistent and temporary LOBs. (SQL semantics do not apply to BFILE columns as BFILE is a read-only datatype.)

SQL Functions and Operators Supported for Use with LOBs

Many SQL operators and functions that take VARCHAR2 columns as arguments also accept LOB columns. The following list summarizes which categories of SQL functions and operators are supported for use with LOBs. Details on individual functions and operators are given in Table 9-1.

The following categories of SQL functions and operators are supported for use with LOBs:

(Some comparison functions are not supported for use with LOBs.)

(Some conversion functions are not supported for use with LOBs.)

The following categories of functions are not supported for use with LOBs:

Note that although pre-defined aggregate functions are not supported for use with LOBs, you can create user-defined aggregate functions to use with LOBs. See the Oracle Database Data Cartridge Developer’s Guide for more information on user-defined aggregate functions.

Details on individual functions and operators are given in Table 9-1. This table lists SQL operators and functions that take VARCHAR2 types as operands or arguments, or return a VARCHAR2 value, and indicates in the «SQL» column which functions and operators are supported for CLOB and NCLOB datatypes. (The LENGTH function is also supported for the BLOB datatype.)

The DBMS_LOB PL/SQL package supplied with Oracle Database supports using LOBs with most of the functions listed in Table 9-1 as indicated in the «PL/SQL» column.

Implicit Conversion of CLOB to CHAR Types

Table 9-1 SQL VARCHAR2 Functions and Operators on LOBs

Select clobCol || clobCol2 from tab;

if clobCol=clobCol2 then.

if clobCol NOT IN (clob1, clob2, clob3) then.

if clobCol Comparison

if clobCol BETWEEN clobCol2 and clobCol3 then.

if clobCol LIKE ‘%pattern%’ then.

where clobCol IS NOT NULL

select INITCAP(clobCol) from.

. where LOWER(clobCol1) = LOWER(clobCol2)

select RPAD(clobCol, 20, ‘ La’) from.

. where RTRIM(LTRIM(clobCol,’ab’), ‘xy’) = ‘cd’

select REPLACE(clobCol, ‘orig’,’new’) from.

. where SOUNDEX(clobCOl) = SOUNDEX(‘SMYTHE’)

. where substr(clobCol, 1,4) = ‘THIS’

select TRANSLATE(clobCol, ‘123abc’,’NC’) from.

select ASCII(clobCol) from.

. where instr(clobCol, ‘book’) = 11

. where NLSSORT (clobCol,’NLS_SORT = German’) > NLSSORT (‘S’,’NLS_SORT = German’)

Returns a Unicode string given a string in the datatype CHAR, VARCHAR2,CLOB, NCHAR, NVARCHAR2, NCLOB. An o code point qualified by an umlaut code point will be returned as the o-umlaut code point.

DECOMPOSE(‘str’ [CANONICAL | COMPATIBILITY] )

Valid for Unicode character arguments. Returns a Unicode string after decomposition in the same character set as the input. o-umlaut code point will be returned as the o code point followed by the umlaut code point.

select CONVERT(clobCol,’WE8DEC’,’WE8HP’) from.

select count(clobCol) from.

select MAX(clobCol) from.

select grouping(clobCol) from. group by cube (clobCol);

select GREATEST (clobCol1, clobCol2) from.

select DECODE(clobCol, condition1, value1, defaultValue) from.

select NVL(clobCol,’NULL’) from.

select DUMP(clobCol) from.

select VSIZE(clobCol) from.

Category Operator / Function SQL Example / Comments SQL PL/SQL
Concatenation ||, CONCAT() BETWEEN CNV CNV
Conversion DECOMPOSE CNV CNV
Conversion HEXTORAW No CNV
Conversion TO_MULTI_BYTE

INSERT INTO. SELECT TO_LOB(longCol).

Note that TO_LOB can only be used to create or insert into a table with LOB columns as SELECT FROM a table with a LONG column.

N/A N/A
Conversion TO_CLOB No N/A
Unicode INSTR2, SUBSTR2, LENGTH2, LIKE2 These functions use UCS2 code point semantics. No CNV
Unicode INSTR4, SUBSTR4, LENGTH4, LIKE4 These functions use UCS4 code point semantics. No CNV
Unicode INSTRC, SUBSTRC, LENGTHC, LIKEC These functions use complete character semantics. No CNV

UNICODE Support

Variations on the INSTR, SUBSTR, LENGTH, and LIKE functions are provided for Unicode support. (These variations are indicated as «Unicode» in the «Category» column of Table 9-1.)

for a detailed description on the usage of UNICODE functions.

Codepoint Semantics

UCS2 codepoint semantics are used for AL16UTF16 and UTF8 character sets.

UCS4 codepoint semantics are used for all other character sets, such as AL32UTF8.

Return Values for SQL Semantics on LOBs

The return type of a function or operator that takes a LOB or VARCHAR2 is the same as the datatype of the argument passed to the function or operator.

Oracle Database SQL Reference for details on the CONCAT function and the concatenation operator (||).

A LOB instance is always accessed and manipulated through a LOB locator. This is also true for return values: SQL functions and operators return a LOB locator when the return value is a LOB instance.

Any LOB instance returned by a SQL function is a temporary LOB instance. LOB instances in tables (persistent LOBs) are not modified by SQL functions, even when the function is used in the SELECT list of a query.

LENGTH Return Value for LOBs

The return value of the LENGTH function differs depending on whether the argument passed is a LOB or a character string:

Implicit Conversion of LOB Datatypes in SQL

Some LOB datatypes support implicit conversion and can be used in operations such as cross-type assignment and parameter passing. These conversions are processed at the SQL layer and can be performed in all client interfaces that use LOB types.

Implicit Conversion Between CLOB and NCLOB Datatypes in SQL

The database enables you to perform operations such as cross-type assignment and cross-type parameter passing between CLOB and NCLOB datatypes. The database performs implicit conversions between these types when necessary to preserve properties such as character set formatting.

Note that, when implicit conversions occur, each character in the source LOB is changed to the character set of the destination LOB, if needed. In this situation, some degradation of performance may occur if the data size is large. When the character set of the destination and the source are the same, there is no degradation of performance.

After an implicit conversion between CLOB and NCLOB types, the destination LOB is implicitly created as a temporary LOB. This new temporary LOB is independent from the source LOB. If the implicit conversion occurs as part of a define operation in a SELECT statement, then any modifications to the destination LOB do not affect the persistent LOB in the table that the LOB was selected from as shown in the following example:

«Implicit Conversions Between CLOB and VARCHAR2» for information on PL/SQL semantics support for implicit conversions between CLOB and VARCHAR2 types.

«Implicit Character Set Conversions with LOBs» for more information on implicit character set conversions when loading LOBs from BILEs.

Oracle Database SQL Reference for details on implicit conversions supported for all datatypes.

Unsupported Use of LOBs in SQL

Table 9-2 lists SQL operations that are not supported on LOB columns.

Table 9-2 Unsupported usage of LOBs in SQL

SELECT DISTINCT clobCol from.

SELECT. ORDER BY clobCol

SELECT avg(num) FROM.

SQL Operations Not Supported Example of unsupported usage
SELECT DISTINCT
UNION, INTERSECT, MINUS

(Note that UNION ALL works for LOBs.)

SELECT clobCol1 from tab1 UNION SELECT clobCol2 from tab2;

SELECT. FROM. WHERE tab1.clobCol = tab2.clobCol

CREATE INDEX clobIndx ON tab(clobCol).

VARCHAR2 and RAW Semantics for LOBs

The following semantics, used with VARCHAR2 and RAW datatypes, also apply to LOBs:

Defining a CHAR buffer on a CLOB

You can define a VARCHAR2 for a CLOB and RAW for a BLOB column. You can also define CLOB and BLOB types for VARCHAR2 and RAW columns.

Selecting a CLOB column into a CHAR buffer or VARCHAR2

If a CLOB column is selected into a VARCHAR2 variable, then data stored in the CLOB column is retrieved and put into the CHAR buffer. If the buffer is not large enough to contain all the CLOB data, then a truncation error is thrown and no data is written to the buffer. After successful completion of the SELECT operation, the VARCHAR2 variable holds as a regular character buffer.

In contrast, when a CLOB column is selected into a local CLOB variable, the CLOB locator is fetched.

Selecting a BLOB column into a RAW

When a BLOB column is selected into a RAW variable, the BLOB data is copied into the RAW buffer. If the size of the BLOB exceeds the size of the buffer, then a truncation error is thrown and no data is written to the buffer.

LOBs Returned from SQL Functions

When a LOB is returned from a SQL function, the result returned is a temporary LOB. Your application should view the temporary LOB as local storage for the data returned from the SELECT operation as follows:

In PL/SQL, the temporary LOB has the same lifetime (duration) as other local PL/SQL program variables. It can be passed to subsequent SQL or PL/SQL VARCHAR2 functions or queries as a PL/SQL local variable. The temporary LOB will go out of scope at the end of the program block at which time, the LOB is freed. These are the same semantics as those for PL/SQL VARCHAR2 variables. At any time, nonetheless, you can use a DBMS_LOB.FREETEMPORARY call to release the resources taken by the local temporary LOBs.

In OCI, the temporary LOBs returned from SQL queries are always in ‘session’ duration, unless a user-defined duration is present, in which case, the temporary LOBs will be in the user-defined duration.

Ensure that your temporary tablespace is large enough to store all temporary LOB results returned from queries in your program(s).

The following example illustrates selecting out a CLOB column into a VARCHAR2 and returning the result as a CHAR buffer of declared size:

IS NULL and IS [NOT] NULL Usage with VARCHAR2s and CLOBs

You can use the IS NULL and IS [NOT] NULL operators with LOB columns. When used with LOBs, these operators determine whether a LOB locator is stored in the row.

In the SQL 92 standard, a character string of length zero is distinct from a NULL string. The return value of IS NULL differs when you pass a LOB compared to a VARCHAR2 :

When you pass an initialized LOB of length zero to the IS NULL function, zero ( FALSE ) is returned. These semantics are compliant with the SQL standard.

When you pass a VARCHAR2 of length zero to the IS NULL function, TRUE is returned.

WHERE Clause Usage with LOBs

SQL functions with LOBs as arguments, except functions that compare LOB values, are allowed in predicates of the WHERE clause. For example, the LENGTH function can be included in the predicate of the WHERE clause:

Источник

Работа с большими объектами в PL/SQL (BFILE, LOB, SecureFiles)

Тема работы с большими объектами весьма объемна, поэтому мы не сможем рассмотреть все ее аспекты. Данную статью блога следует рассматривать как введение в программирование больших объектов для разработчиков PL/SQL. Мы познакомимся с некоторыми нюансами, которые необходимо учитывать, и рассмотрим примеры важнейших операций. Хочется надеяться, что представленный материал станет хорошей основой для ваших дальнейших исследований в этой области.

Прежде чем переходить к основному материалу, необходимо указать, что все примеры данного раздела основаны на следующем определении таблицы (см. файл source_code.sql):

Рис. 1. Водопад Драйер-Хоуз возле Мунисинга (штат Мичиган)

Таблица содержит информацию о водопадах, расположенных в северной части штата Мичиган. На рис. 1 изображен водопад Драйер-Хоуз возле Мунисинга; в замерзшем состоянии его часто посещают альпинисты.

Понятие локатора LOB

Рис. 2. Локатор LOB указывает на объект в базе данных

Этот механизм в корне отличается от того, как работают другие типы данных. Переменные и значения в столбцах LOB содержат локаторы больших объектов, которые идентифицируют реальные данные, хранящиеся в другом месте базы данных или вне ее. Для работы с данными типа LOB нужно сначала извлечь локатор, а затем с помощью встроенного пакета DBMS_LOB получить и/или модифицировать реальные данные. Так, для получения двоичных данных фотографии, локатор которой хранится в столбце BLOB из приведенной ранее таблицы, необходимо выполнить следующие действия:

Не все эти действия являются обязательными; не огорчайтесь, если что-то пока остается непонятным. Далее все эти операции будут описаны более подробно.

LOB-ДАННЫЕ В ДОКУМЕНТАЦИИ ORACLE

Если вам часто приходится работать с большими объектами, настоятельно рекомендуем ознакомиться со следующими документами Oracle:

Большие объекты — пустые и равные NULL

Очень важно понимать это различие, потому что у типов LOB способ проверки наличия либо отсутствия данных получается более сложным, чем у скалярных типов. Для традиционных скалярных типов достаточно простой проверки IS NULL :

Итак, проверять нужно два условия вместо одного.

Для создания пустого объекта BLOB используется функция EMPTY_BLOB (). Для типов CLOB и NCLOB используется функция EMPTY_CLOB ().

Запись данных в объекты LOB

Чтение данных из объектов LOB

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

Особенности типа BFILE

Как упоминалось ранее, типы данных BLOB, CLOB и NCLOB представляют внутренние большие объекты, хранящиеся в базе данных, в то время как BFILE является внешним типом. Между объектами BFILE и внутренними LOB существуют три важных различия:

Создание локатора BFILE

Локатор BFILE — всего лишь комбинация псевдонима каталога и имени файла. Реальный файл и каталог даже не обязаны существовать. Иначе говоря, Oracle позволяет создавать псевдонимы для несуществующих каталогов, а BFILENAME — локаторы для несуществующих файлов. Иногда это бывает удобно.

Доступ к данным BFILE

Результат выполнения этого кода:

Использование BFILE для загрузки столбцов LOB

Не путайте предупреждения с ошибками PL/SQL; загрузка все равно будет выполнена в соответствии с запросом.

Следующий пример SQL*Plus демонстрирует загрузку данных из внешнего файла с использованием LOADCLOBFROMFILE :

SecureFiles и BasicFiles

По данным тестирования Oracle, повышение быстродействия от использования SecureFiles составляет от 200 до 900%. В простом тесте с загрузкой файлов PDF на сервер Microsoft Windows я наблюдал снижение времени загрузки от 80 до 90% от 169 секунд до 20–30 секунд (в зависимости от конфигурации и количества загрузок). В системе x86 Linux выигрыш был более скромным. Возможно, в вашей ситуации цифры будут другими, но ускорение будет наверняка!

Если вы не уверены относительно базы данных, обратитесь за помощью к администратору.

Устранение дубликатов

Сжатие

Чтобы включить режим устранения дубликатов одновременно со сжатием, укажите соответствующие параметры в определении LOB :

При включении обоих режимов сначала выполняется устранение дубликатов, а затем сжатие.

Шифрование

Созданный бумажник необходимо открывать заново после каждого перезапуска экземпляра. Открытие и закрытие бумажника выполняется следующим образом:

Временные объекты LOB

Создание временного объекта LOB

Другой способ создания временного объекта LOB основан на объявлении переменной LOB в коде PL/SQL и присваивании ей значения. Например, следующий фрагмент создает временные объекты BLOB и CLOB :

Освобождение временного объекта LOB

Процедура DBMS_LOB.FREETEMPORARY освобождает временный объект типа BLOB или CLOB в текущем временном табличном пространстве. Заголовок процедуры:

В следующем примере сначала создаются, а затем освобождаются два временных объекта LOB :

После вызова FREETEMPORARY освобожденный локатор LOB ( lob_loc ) помечается как недействительный. Если присвоить его другому локатору с помощью обычного оператора присваивания PL/SQL, то и этот локатор будет освобожден и помечен как недействительный.

PL/SQL неявно освобождает временные объекты LOB при выходе за пределы области действия блока.

Проверка статуса объекта LOB

Функция ISTEMPORARY позволяет определить, является ли объект с заданным локатором временным или постоянным. Она возвращает целочисленный код: 1 для временного объекта, 0 для постоянного.

Управление временными объектами LOB

Временные большие объекты обрабатываются не так, как обычные постоянные. Для них не поддерживаются транзакции, операции согласованного чтения, откаты и т. д. Такое сокращение функциональности имеет ряд следствий:

Встроенные операции LOB

Семантика SQL

Возможности, упомянутые в предыдущем разделе, Oracle называет «поддержкой семантики SQL для LOB ». С точки зрения разработчика PL/SQL это означает, что с LOB можно работать на уровне встроенных операторов (вместо отдельного пакета).

Следующий пример демонстрирует некоторые возможности семантики SQL:

Маленький фрагмент кода в этом примере содержит несколько интересных моментов:

Семантика SQL может создавать временные объекты LOB

Чтобы получить описание местонахождения водопада в верхнем регистре, сохранив возможность обновления исходного описания, необходимо получить два локатора LOB :

Влияние семантики SQL на быстродействие

А теперь представьте, сколько времени потребуется для создания копии каждого объекта CLOB для его преобразования к верхнему регистру, для выделения и освобождения пространства временных объектов CLOB во временном пространстве и для посимвольного поиска данных в CLOB средним объемом в 1 Гбайт. Конечно, такие запросы навлекут на вас гнев администратора базы данных.

Oracle Text и семантика SQL

За дополнительной информацией о CONTAINS и индексах Oracle Text, игнорирующих регистр символов, обращайтесь к документации Oracle Text Application Developer’s Guide.

Функции преобразования объектов LOB

Oracle предоставляет в распоряжение программиста несколько функций преобразования больших объектов. Перечень этих функций приведен в табл. 2.

Источник

Читайте также:  какой лопатой легче копать прямой или закругленной
Сказочный портал