DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Символьные функции, возвращающие числовые значения

Эти функции принимают символьные аргументы и возвращают числовые результаты. Аргументы могут быть либо CHAR, либо VARCHAR2. Хотя обычно в результате получается целое значение, возвращаемое значение является NUMBER без определения точности или масштаба. Эти функ­ции описываются в следующей таблице:

Функция
ASCII(string)
Доступна в версии
0racle7
Где применима
Процедурные и SQL-операторы

Возвращает десятичное представление первого байта строки sfring из набора символов базы данных. Обратите внимание, что эта функция по-прежнему называется ASCII, хотя набор символов может и не быть 7-битовым ASCII. Функции CHR и ASCII являются обратными по отношению друг к другу. CHR возвращает символ для кода символа, a ASCII — код символа для символа.
INSTR(string/, string2 [,a][,b]) 
Возвращает позицию вхождения строки        в строку        величины а и b измеряются
в символах (см. ниже).
INSTRB(string, string2 [,a][,b])
Возвращает позицию вхождения строки        в строку        величины а и b измеряются в байтах (см. ниже).
,INSTRC(string/, string2 [,а][,Ь]) 
Возвращает позицию вхождения строки        в строку        величины а и b измеряются в полных символах Unicode (см. ниже).
INSTR2(string, string2 [,a][,b])
Возвращает позицию вхождения строки        в строку        величины а и b измеряются
в кодовых пунктах UCS2 (см. ниже).
INSTR4(string, string2 [,a][,b]) 
Возвращает позицию вхождения строки string в строку        величины а и b измеряются
в кодовых пунктах UCS4 (см. ниже).
LENGTH(string)    
Возвращает длину строки, измеренную в символах (см.        ниже).
LENGTHB(string)      
Возвращает длину строки, измеренную в байтах (см. ниже).
LENGTHC(string)        
Возвращает длину строки, измеренную в полных символах Unicode (см. ниже).
LENGTH2(string)        
Возвращает длину строки, измеренную в кодовых пунктах UCS2 (см. ниже).
LENGTH4(string)
Возвращает длину строки, измеренную в кодовых пунктах UCS4 (см. ниже).

NSTRINSTRB, INSTRC, INSTR2 и INSTR4

Назначение Возвращает позицию вхождения строки string2 в строку string1. Строка string1 просматривается слева, начиная с позиции а. Если а отрицательно, то string1 просматривается справа. Возвращается позиция Ь-го вхождения. По умолчанию а и Ь присваиваются значения 1, что будет возвращать позицию первого вхождения строки stringl1 в строку string1. Если stringing найдена по указанным а и b, возвращается 0. Позиции из­меряются относительно начала string1 независимо от значений а и b.
Разные версии INSTR придают различный смысл а и Ь, как показано в
следующей таблице.
Функция        Единицы для а и b
INSTR        Символы входного набора символов базы данных
INSTRB        Байты
INSTRC        Полные символы Unicode
INSTR2        Кодовые пункты UCS2
INSTR4        Кодовые пункты UCS4
LENGTH, LENGTHB, LENGTHC, LENGTH2 и LENGTH4
Синтаксис
LENGTH (string) LENGTHB (string) LENGTHC (string)
Назначение Возвращает длину строки string. Значения CHAR дополня­ются пробелами, поэтому если строка имеет тип CHAR, конечные пробе­лы включаются в длину. Если string будет NULL, функция вернет NULL. Различные версии LENGTH по-разному интерпретируют возвращаемое как показывает следующая таблица.
Функция        Единицы измерения возвращаемого значения
LENGTH        Символы входного набора символов базы данных
LENGTHB        Байты
LENGTHC        Полные символы Unicode
LENGTH2        Кодовые пункты UCS2
LENGTH4        Кодовые пункты UCS4

Функции NLS
За исключением NCHR, эти функции получают символьные аргументы и возвращают символьные значения. Все функции этого вида созданы для работы с данными из различных наборов символов либо с параметрами NLS, отличными от используемых по умолчанию. Дополнительная ин­формация о NLS (в Огас1е9гносит название Globalization) представлена в документации Oracle.

CONVERT
charset[,source_charset])
Преобразует символы входной строки string в символы из указанного набора dest charset. Аргумент source_charsetзадает набор символов входного значения. Если он не определен, используется набор символов базы данных по умолчанию. Входные данные могут быть CHAR, VARCHAR2, NCHAR, NVARCHAR2, CL0B или NCL0B. Возвращаемое значение будет VARCHAR2. Если символ входной строки не присутствует в dest_charset, будет применен символ замены (как определено в dest_charset).
INCHR(x)        
Возвращает символ, который имеет значение, эквивалентное х в национальном наборе символов базы данных. NCHR(x) эквивалентна CHR(x USING NCHARCS).

NLS_CHARSET_ID(cnarsef_name)

Возвращает числовой идентификатор указанного набора символов charset пате. Задание 'CHAR CS' для charset пате будет возвращать идентификатор набора символов базы данных, a 'NCHAR_CS' вернет идентификатор национального набора символов базы данных. Если charsetjiame не является допустимым именем набора символов, возвращается NULL. NLS_CHARSET_ID и NLS_CHARSET_NAME - взаимно обратные функции.
Возвращает имя набора символов по указанному идентификатору charset_ID. Если charset_ID является недопустимым идентификатором набора символов, возвращается NULL NLS_CHARSET_NAME и NLS_CHARSETJD - взаимно обратные функции.
NLS_INITCAP
Возвращает строку, в которой первый символ каждого слова является прописным, а остальные символы строчные. Аргумент nlsparams определяет для сеанса последовательность сортировки, отличную от используемой по умолчанию. Если этот аргумент не указан, NLS INITCAP ведет себя так же, как INITCAP. Аргумент nlsparams задается в виде 'NLS SORT=sort', где sort определяет последовательность лингвистической сортировки. Дополнительную информацию о параметрах NLS и о том, как они используются, можно найти в "Server SQL Reference".
NLS_LOWER
Возвращает строку, в которой все символы строчные. Символы, отличные от букв,
не изменяются. Аргумент nlsparams действует так же, как и в NLSJNTCAP. Если nlsparams
отсутствует, NLS_LOWER ведет себя аналогично LOWER.
NLS_UPPER
Возвращает строку, в которой все символы прописные. Символы, отличные от букв,
не изменяются. Аргумент nlsparams действует так же, как и в NLSJNITCAP. Если nlsparams
отсутствует, NLS_UPPER ведет себя аналогично UPPER.
NLSSORT
Возвращает строку байтов, используемую для сортировки string. Все символьные значения преобразуются в строки байтов для согласования различных наборов символов баз данных. Аргумент nlsparams ведет себя так же, как в NLSJNITCAP. Если nlsparams не указан, для сеанса используется последовательность сортировки по умолчанию. Дополнительную информацию о последовательностях сортировки можно найти в разделе "Поддержка национальных языков" в "Server SQL Reference".
TRANSLATE
TRANSLATE ... USING преобразует входной строковый аргумент string либо в набор символов базы данных (если указано CHAR CS), либо в национальный набор символов базы данных (если указано NCHAR_CS). Аргумент string может быть CHAR, VARCHAR2, NCHAR или NVARCHAR2. Если задано CHARCS, возвращаемый тип будет VARCHAR2, а в случае NCHARC5 возвращается тап NVARCHAR2. TRANSLATE... USING предоставляет подмножество функциональности CONVERT. Отметам, что, если входной аргумент содержит символы UCS2 или обратный слэш (\), необходимо использовать функцию UNISTR (доступную в 0гас1е9/ и выше).

UNISTR
Возвращает строку s, транслированную в набор символов Unicode базы данных. Аргумент s может содержать escape-символы кодовых пунктов UCS2, состоящие из обратного слэша (\), за которым следует шестнадцатеричный код. Таким образом, чтобы включить обратный слэш в строку, необходимо использовать двойной обратный слэш (\\). UNISTR аналогична TRANSLATE...USING за исключением того только, что транслирует в Unicode и принимает escape-символы.

 









jAntivirus