DeepEdit!

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

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

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

Функции преобразования используются для преобразования типов данных PL/SQL. Большую часть преобразований PL/SQL выполняет автоматиче­ски, неявно вызывая определенную функцию. Однако пользователь не мо­жет управлять форматом данных во время неявного вызова функции, что иногда делает текст программы мало понятным. Поэтому считается хоро­шим стилем явно указывать функции преобразования, а не полагаться на неявное преобразование типов данных, производимое PL/SQL. Функции преобразования описываются в следующей таблице:
ASCIISTR
Возвращает строку, содержащую только допустимые символы SQL плюс слэш (/). Все символы
string (они могут принадлежать любому набору символов), не являющиеся допустимыми,
преобразуются в числовой эквивалент, перед которым указывается слэш.
BIN_T0_NUM
Преобразует битовый вектор в эквивалентное число. Аргументом для BIN_TO_NUM является список разделенных запятыми пит, каждое из которых может быть только 0 или 1. Например, BIN_TO_NUM(1,0,1,1) возвращает 11, так как двоичным представлением 11 является 1011. BIN_TO_NUM полезна при использовании группирования и предложения GROUP BY.
CHARTOROWID
Преобразует значение типа CHAR или VARCHAR2, содержащее идентификатор строки (ROWID) во внешнем формате, во внутренний двоичный формат. Аргумент string должен быть символьной строкой, содержащей идентификатор строки ROWID, который представлен во внешнем формате (см. главу 2). Функция CHARTOROWID является обратной по отношению к функции ROWIDTOCHAR,
Возвращает строку string (которая может содержать символы любого набора) в полностью
нормализованной форме Unicode в том же наборе символов. Подробности о Unicode
и нормализованной форме представлены в документации Oracle. Аргумент string может быть
CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB или NCLOB.
Возвращает строку Unicode, которая является канонической декомпозицией string (может быть представлена в любом наборе символов). Подробности о Unicode и канонической декомпозиции приведены в документации Oracle. Аргумент string может быть CHAR, VARCHAR2,
NCHAR, NVARCHAR2, CLOB или NCLOB.
FROM_TZ
Возвращает значение WITH TIMEZONE, которое является комбинацией не содержащего информации о временном поясе, и предоставленного timezone.
HEXTORAW
Преобразует двоичное значение, представленное строкой string, в значение типа RAW. Строка sfring должна содержать шестнадцатеричные значения. Каждые два символа строки представляют один байт результирующего значения RAW. Функции HEXTORAWn RAWTOHEX являются обратными по отношению друг к другу.
NUMTODSINTERVAL
Преобразует х, которое должно быть числом, в значение INTERVAL DAY TO SECOND. Аргумент unit является строкой символов (типа CHAR, VARCHAR2, NCHAR или NVARCHAR2) и может принимать одно из следующих значений: 'DAY', 'HOUR', 'MINUTE', 'SECOND'. Аргумент unit не зависит от регистра символов. По умолчанию возвращаемое значение имеет точность 9.
NUMTOYMINTERVAL
Преобразует х, которое должно быть числом, в значение INTERVAL YEAR TO MONTH. Аргумент unit является строкой символов (типа CHAR, VARCHAR2, NCHAR или NVARCHAR2) и может принимать одно из следующих значений: 'YEAR', 'MONTH'. Аргумент unit не зависит от регистра символов. По умолчанию возвращаемое значение имеет точность 9.
REFTOHEX
Возвращает представление значения REF.
RAWTOHEX
Преобразует значение типа RAW в строку символов, содержащую шестнадцатеричное представление. Каждый байт rawvalue преобразуется в двухсимвольную строку. Функции RAWTOHEX и HEXTORAW являются обратными по отношению друг к другу.
RAWTONHEX
Преобразует значение типа RAW в строку символов, содержащую шестнадцатеричное представление. Каждый байт преобразуется в двухсимвольную строку. RAWTONHEX ведет себя аналогично RAWTOHEX, за исключением того, что возвращаемое значение будет иметь тип NVARCHAR2, а не VARCHAR2.
ROWIDTOCHAR
Преобразует значение типа ROWID (идентификатор строки) в его внешнее представление в виде строки символов (которое может иметь различную форму в зависимости от исходного значения rowid). Функции ROWIDTOCHAR и CHART0R0WID являются обратными по отношению друг к другу.
ROWIDTONCHAR
Преобразует значение типа ROWID (идентификатор строки) в его внешнее представление
в виде строки символов (которое может иметь различную форму в зависимости от исходного значения rowid). Возвращаемым типом является NCHAR, а не CHAR.
TO_CHAR        
Преобразует свои аргументы в символьный тип (см. ниже).
TO_CLOB
Преобразует строку в тип CLOB. Аргумент string может быть литералом или другим столбцом LOB. Если аргумент содержит данные NCHAR, он преобразуется в набор символов базы данных.
TO_DATE
Преобразует свои аргументы в тип DATE (см. ниже).
TO_DSINTERVAL
Преобразует строку (которая может быть CHAR, VARCHAR2, NCHAR или NVARCHAR2) в тип INTERVAL DAY ТО SECOND. Необязательный аргумент nlsparams может содержать только спецификацию NLS_NUMERIC_CHARARCTERS десятичных и групповых символов.
T0_L0B
Преобразует long columns LOB. Эта функция используется для преобразования данных LONG или LONG RAW в CLOB или BLOB соответственно.
TO_MULTI_BYTE
Возвращает строку, в которой все однобайтовые символы заменены эквивалентными многобайтовыми символами. Эта функция применяется, если набор символов базы данных состоит как из однобайтовых, так и из многобайтовых символов. В противном случае string не изменяется. Функции TO_MULTI_BYTE и TO_SINGLE_BYTE являются обратными по отношению друг к другу.
TONCHAR
TONCHAR ведет себя так же, как TOCHAR, за исключением того, что результат будет
представлен в национальном наборе символов, а не в наборе символов базы данных (см. ниже).
T0_NCL0B
Преобразует строку string в NCLOB. Аргумент string может быть литералом или другим столбцом LOB. Данные из string преобразуются, если необходимо, в национальный набор символов базы данных.
T0_NUMBER
Преобразует все многобайтовые символы строки string в эквивалентные однобайтовые символы.
Эта функция применяется, если набор символов базы данных состоит как из однобайтовых, так и из многсбайтовыгх символов. В противном случае строка не изменяется. Функции TO_SINGLE_BYTE и TO_MULTI_BYTE являются обратными по отношению друг к другу.
TO_CHAR (дата и дата-время)
Синтаксис
TO_CHAR(d     [,format[,nbparams] ])
Назначение Преобразует дату или отметку времени в строку символов Если задан format (формат), он используется для управления структурой результата. Строка формата состоит из элементов формата.
Каждый элемент возвращает часть значения даты или отметки времени, например месяц. Элементы формата даты, которые допустимы в описаны в таблице 5.4. Есди format не указан, используется формат по умолчанию для        отметки времени или отметки времени с часовым поясом.
Если задан        он управляет языком для компонентов месяца и дня в возвращаемой строке. Формат nlsparams следующий:

'NLS_DATE_LANGUAGE= language'
TO_CHAR (число) Синтаксис
TO_CHAK(num   [,format[,nbparams]])
Назначение Преобразует аргумент типа NUMBER в VARCHAR2.
Необязательный аргумент format управляет преобразованием. Доступные числовые форматы описаны в таблице 5.5. format задан, результи­рующая строка будет иметь точно столько символов, сколько необходимо для сохранения значащих цифр пит. Параметр nlsparams используется для определения десятичных и групповых разделителей, а также символа валюты. Он может иметь формат:
где к g — десятичный и групповой разделители соответственно. Строка siring представляет символ валюты. Например, в США десятичным разде­лителем обычно является точка групповым разделителем — запятая (,), а символом валюты — доллар ($). Поддержка национального языка по­дробно описана в "Oracle Globalizartion".

TO_DATE
Синтаксис
TO_DATE (stringl ,format[, nlsparams] ])
Назначение Преобразует строку string типа CHAR или        в тип
DATE. Аргумент format является строкой формата даты (см. таблицу 5.4). Если
format не задан, используется формат по умолчанию для сеанса. Аргумент
используется в        таким же образом, как и в
и        являются взаимно обратными функциями.
TO_NUMBER
Синтаксис
TO NUMBER( string [,farmat[filsparamsj])
Назначение Преобразует строку string типа CHAR или VARCHAR2 в зна­чение типа NUMBER. Если задан format, строка должна соответствовать числовому формату. Параметр nlsparams ведет себя таким же образом, как и в TO_CHAR. ТО NUMBER и TO_CHAR являются взаимно обратными функциями.

 









jAntivirus