"justify"> FROM DUAL поверне рядок
STRING1 STRING2 .
Функції для обрізання початкових і кінцевих пробілів LTRIM (рядок), RTRIM (рядок), TRIM (рядок). Відповідно перша функція обрізає всі початкові пробіли рядки, друга - всі кінцеві, а третя все початкові і кінцеві.
SELECT LTRIM (str1) FROM DUAL поверне рядок str1,
SELECT RTRIM (str2) FROM DUAL поверне рядок str2,
SELECT TRIM (str3) FROM DUAL поверне рядок str3.
Функція заміни частини рядка іншим рядком REPLACE (вихідна рядок, замінна підрядок, що замінює підрядок). Для більшої ясності розглянемо приклад:
У деякому текстовому полі таблиці зберігається число, причому символ-роздільник між цілою і дробовою частиною в деяких полях" .", а нам для подальшої обробки даних потрібно, щоб він у всіх полях повинен бути «,».
Для цього скористаємося функцією REPLACE наступним чином: REPLACE (field1,.,,) і всі символи «.» в полі field будуть замінені на символ «,».
SELECT REPLACE (My_string, _, @) FROM DUAL поверне рядок My @ string.
Функції перетворення даних до інших типів даних: TO_CHAR (число) перетворює число в текст, TO_NUMBER (рядок) перетворює текст в число, TO_DATE (рядок, формат дати) перетворить рядок в дату певного формату.
SELECT TO_CHAR (123) FROM DUAL поверне рядок 123,
SELECT TO_NUMBER (12345) FROM DUAL поверне число 12345,
SELECT TO_DATE («01.01.2010, dd.mon.yyyy) FROM DUAL поверне дату 01.JAN.2010.
Функція визначення входження підрядка в рядок INSTR (вихідна рядок, підрядок, номер символу). Ця функція дозволяє визначати номер символу у вихідній рядку, з якого починається шукана підрядок (якщо така є). Інакше повертається 0. Наприклад, нам потрібно визначити всі посади в таблиці Table1, у найменуванні яких зустрічається підрядок «менеджер». Для цього цілком підійде наступний оператор:
SELECT * FROM TABLE1 WHERE INSTR (POST, менеджер, 1) gt; 0.
Тобто оператор SELECT виведе тільки ті записи з таблиці TABLE1, де шукана підрядок «менеджер» буде знайдена. Причому пошук буде здійснюватися з першого символу. Якщо пошук потрібно здійснювати з іншої позиції, то номер символу для початку пошуку вказується в третьому параметрі.
SELECT INSTR (Small string, string, 1) FROM DUAL поверне значення 7,
SELECT INSTR (Small string, String, 1) FROM DUAL поверне значення 0.
Функція виділення у вихідній рядку підрядка SUBSTR (вихідна рядок, номер початкового символу, кількість символів). Розглянемо такий приклад, в користувальницької таблиці зберігається адреса у вигляді найменування населеного пункту, назва вулиці, номер будинку. Причому ми точно знаємо, що для найменування населеного пункту відводиться строго 20 символів (якщо в найменуванні населеного пункту менше ніж 20 символів, то інша частина заповнюється пробілами), для найменування вулиці 30 символів, для номера будинку 3 символу. Далі нам необхідно перенести всі адреси з нашої таблиці в іншу, при цьому всі 3 компонента адреси повинні бути в різних полях. Для виділення компонент адреси застосуємо функцію SUBSTR ().
SELECT SUBSTR (TABLE_1.ADDRESS, 1,20) CITY, SUBSTR (TABLE_1.ADDRESS, 21,30) STREET, SUBSTR (TABLE_1.ADDRESS, 52, 3) TOWN FROM TABLE_1;
Звичайно, для перенесення даних необхідно скористатися оператором INSERT, але для розуміння роботи функції SUBSTR цілком підійде розглянутий приклад.
SELECT SUBSTR (My_string, 4, 3) FROM DUAL поверне рядок str.
Розглянуті вище функції можна використовувати у вхідних параметрах. Так якщо нам потрібно виділити всі символи, після якогось певного, то в функцію SUBSTR можна передати номер шуканого символу з функції INSTR. Наприклад, якщо потрібно перенести всі символи з поля таблиці, які розташовані після «,» то можна використовувати таку конструкцію:
SELECT SUBSTR (My_string, INSTR (My_string,,, 1), LENGTH (My_string) - INSTR (My_string,,, 1) +1) FROM DUAL.
Для визначення початкового символу ми викликаємо функцію INSTR (), яка поверне номер символу першого входження подстрок «,». Далі ми визначаємо кількість символів до кінця рядка як різницю довжини рядка і номера першого входження підрядка.
Для визначення коду символу використовується функція ASCII (рядок), яка повертає к...