Основы программирования в СУБД Oracle. SQL+PL/SQL.. О. А. Ткачев
Чтение книги онлайн.
Читать онлайн книгу Основы программирования в СУБД Oracle. SQL+PL/SQL. - О. А. Ткачев страница 20
Для того чтобы неявное преобразование было возможно, необходимо, чтобы присваиваемое значение соответствовало формату столбца, которому это значение присваивается.
Хотя неявное преобразование возможно, лучше для этого использовать специальные функции. Чаще всего функции преобразования типов используются для того, чтобы числовые данные и даты отобразить в наиболее удобном (понятном) виде.
Четыре типа преобразования:
– число в строку символов;
– строку символов в число;
– дату в строку символов;
– строку символов в дату.
Преобразование чисел в строку символов
Числа, хранящиеся в базе данных, не имеют форматирования. Это означает, что они не имеют символов валюты, запятых, десятичных знаков и других параметров форматирования. Чтобы добавить форматирование, необходимо преобразовать число в строку символов. Для этого используется функция:
TO_CHAR (Х {маска преобразования})
Для преобразования численного значения в строку можно использовать элементы формата, представленные в таблице 3.6.
Таблица 3.6. Элементы маски преобразования, используемые в функции TO_CHAR
Пример 3.35. Использование функции TO_CHAR
SELECT TO_CHAR (1475.29, ′9999.9′) As ′′9999.9′′,
TO_CHAR (1475.29, ′9999.99′) As ′′9999.99′′,
TO_CHAR (1475.29, ′099999.90′) As ′′099999.99′′,
TO_CHAR (1475.29, ′9,999.99′) As ′′9,999.99′′,
TO_CHAR (1475.29, ′$9,999.99′) As ′′$9,999.99′′
FROM DUAL;
Преобразование строки символов в число
Для преобразования символьного значения в число используется функция TO_NUMBER. Синтаксис:
TO_NUMBER (х, {маска преобразования})
Строка x может содержать цифры и символы, которые соответствуют заданному формату. Параметр {маска преобразования} определяет, как нужно интерпретировать символьное представление числа, может содержать те же элементы, которые были определены для функции TO_CHAR.
Если число символов в строке будет больше числа элементов формата, то возникает ошибка. Примеры преобразований, при которых возникает ошибка:
TO_NUMBER (′1475.29′,′999.99′)
TO_NUMBER (′1475.29′, ′9999.9′)
Если число символов в строке будет меньше числа элементов формата, то возникает ошибка.
Пример 3.36. Использование функции TO_NUMBER
SELECT TO_NUMBER (′1475.29′, ′99999.99′),
TO_NUMBER (′1475.29′, ′9999.999′)
FROM DUAL;
Преобразование строки символов в дату
Для преобразования строки символов в значение, имеющее формат даты, используется функция:
TO_DATE (х, {маска преобразования})
Строка x содержит символьное значение даты. Параметр {маска