Главная страница
Случайная страница
Разделы сайта
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Краткий обзор строковых функций
Название функции
| Действие, выполняемое функцией
| ASCII(строка)
| Возвращает десятичное представление первого символа строки, согласно применяемому набору символов
| CHR(число)
| Возвращает символ, имеющий указанный в скобках код из набора символов БД.
Например:
DBMS_OUTPUT.put_line(CHR(37));
Simb: = CHR(105);
| CONCAT(строка1, строка2)
| Возвращает строку 1, сцепленную со строкой 2.
| INITCAP(строка)
| Возвращает строку, в которой каждое слово начинается с прописной буквы и продолжается строчными. Слова разделяются пробелами или не буквенно-цифровыми символами.
| Продолжение табл. 4.6
INSTR(строка исходная, строка искомая, [, стартовая позиция a[, номер вхождения b]])
| Возвращает местоположение искомой строки в исходной строке. Исходная строка просматривается слева, начиная со стартовой позиции. Если стартовая позиция отрицательна, то исходная строка просматривается справа. Возвращается позиция, указывающая местоположение искомой строки с указанным номером вхождения. Значением по умолчанию, как для a так и для b является 1. Если строка искомая не найдена, возвращается 0.
| LENGTH(строка)
| Возвращает размер строки в символах. Значения типа CHAR дополняются пробелами, поэтому если строка имеет тип CHAR в размере указываются и конечные пробелы. Если строка хранит NULL, то возвращается NULL.
| LOWER(строка)
| Переводит все символы строки в нижний регистр
| LPAD(строка 1, длина, строка 2)
| Возвращает строку 1, дополненную слева до размера указанной длины символами строки 2. Если размер строки 2, меньше указанной длины, то при необходимости строка 2 дублируется. Если строка 2 не указана, то ее заменяют символы пробела.
Например:
DBMS_OUTPUT.put_line('Пример='||LPAD('Привет', 10, 'Да '));
Результат:
Пример=Да ДПривет
| LTRIM(строка 1 [, строка 2])
| Удаляет пробелы в начале строки 1, если строка 2 не указана. Иначе возвращает строку 1, в которой удалены крайние левые символы, идентичные символам строки 2.
| NCHR(код)
| Возвращает по коду символ Unicode
| REPLACE(строка_символов, строка_поиска, [строка_замены])
| Возвращает " строка_символов", в которой каждое вхождение " строка_поиска" заменяется на " строка_замены". Если " строка_замены" не указана, то все вхождения " строка_поиска" удаляются из " строка_символов".
| RPAD(строка 1, длина, строка 2)
| Возвращает строку 1, дополненную справа до размера указанной длины символами строки 2. Если размер строки 2, меньше указанной длины, то при необходимости строка 2 дублируется. Если строка 2 не указана, то ее заменяют символы пробела.
| RTRIM(строка 1, строка 2)
| Удаляет пробелы в конце строки 1, если строка 2 не указана. Возвращает " строка 1", в которой удалены крайние правые символы идентичные символам строки 2.
| SOUNDEX (строка)
| Возвращает код звучания строки
| SUBSTR(исходная строка, a, [, b])
| Возвращает часть исходной строки, начинающуюся со стартовой позиции a и имеющую длину b символов. Если a = 0, это равносильно тому, что a = 1. Если a положительно, возвращаются символы слева направо. Если a отрицательно, то стартовая позиция определяется отсчетом с конца строки, но возврат символов идет слева направо! Если b отсутствует, то по умолчанию возвращаются все символы, до конца строки. Если b меньше 1, то возвращается значение NULL.
| Окончание табл. 4.6
TRANSLATE(строка_символов, заменяемая_трока, вносимая_строка)
| Возвращает " строка_символов", в которой все вхождения каждого символа " заменяемая_строка" замещаются соответствующим символом " вносимая_строка". Функция TRANSLATE, является расширением функции REPLACE. Если " заменяемая_строка" длиннее чем " вносимая_строка", все ее лишние символы удаляются поскольку для них нет соответствующих символов во " вносимая_строка". " вносимая_строка" не может быть пустой. Oracle интерпретирует пустую строку как значение NULL, а если любой аргумент функции TRANSLATE является NULL, то результат тоже будет NULL.
| TRIM(строка)
| Удалить пробелы слева и справа в строке.
| UPPER(строка)
| Переводит все символы строки в верхний регистр.
|
Кроме того, в работе могут быть использованы такие функции, как UNISTR, COMPOSE, DECOMPOSE, NLS_INITCAP, NLS_LOWER, NLSSORT, NLS_UPPER, REGEXP_INSTR, REGEXP_LIKE, REGEXP_REPLACE, REGEXP_SUBSTR.
Пример работа со строковыми функциями:
set serveroutput on
DECLARE
c1 char(20);
c2 char(40);
BEGIN
c1: =RPAD('qwe', 15, 'xy');
DBMS_OUTPUT.put_line('c1= ' || c1);
c2: =RPAD('приqwe', 40, 'привет');
DBMS_OUTPUT.put_line('c2= ' || c2);
c2: =TRANSLATE(c2, 'привет', '*---*');
DBMS_OUTPUT.put_line('c2 после TRANSLATE = ' || c2);
END;
Результат:
c1= qwexyxyxyxyxyxy
c2= приqweприветприветприветприветприветприв
c2 после TRANSLATE = *--qwe*---**---**---**---**---**---
|