Данные в базе Oracle организуются в виде строк и столбцов внутри таблиц. Отдельные столбцы определяются с помощью свойств, которые накладывают ограничения на значения и формат данных, которые могут в них помещаться. Давайте вкратце вспомним, как выглядят самые важные встроенные типы данных Oracle, прежде чем переходить к рассмотрению поддерживаемых Oracle SQL-операторов.
Символьные типы данных в Oracle
Для представления символьных литералов фиксированной длины применяется тип данных CHAR:
SEX CHAR(1)
Для представления символьных литералов переменной длины используется тип данных VARCHAR2:
CITY VARCHAR2 (20)
Для хранения больших символьных строк применяется тип данных CLOB
, а для хранения большого количества двоичных данных — типы BLOB
и BFILE/
.
Числовые типы данных Oracle
Для хранения числовых данных применяются следующие важные типы данных SQL:
- тип
NUMBER
, который предназначен для хранения настоящих чисел в формате с фиксированной или плавающей запятой; - типы
BINARY FLOAT
иBINARY DOUBLE
, которые используются для хранения данных в формате с плавающей запятой.
Типы данных даты и времени в Oracle
Существуют два специальных типа данных, которые позволяют иметь дело со значениями даты и времени:
- тип
DATE
применяется для хранения значений даты и времени (например, года, месяца, дня, часов, минут и секунд); - тип
TIMESTAMP
применяется для хранения значений времени с точностью до долей секунды.
Функции преобразования типов данных в Oracle
Oracle предлагает несколько функций преобразования, которые позволяют преобразовывать данные из одного формата в другой. Из них наиболее часто используются функции TO_CHAR
, TO_NUMBER
, TO_DATE
и TO_TIMESTAMP
. Функция TO_CHAR
позволяет преобразовывать число с плавающей запятой в строку, функция TO_NUMBER
— число с плавающей запятой или строку в обычное число, а функция TO_DATE
— символьные данные в данные типа DATE
Ниже приведены некоторые примеры:
SQL> SELECT TO_CHAR(TO_DATE('20-JUL-08', 'DD-MON-RR') ,'YYYY') "Year" FROM DUAL;
Year
---------------------------------------------------------------------------
2008
SQL>
SQL> SELECT TO_CHAR(SYSDATE, 'DD-MON-YYYY')
FROM DUAL;
TO_CHAR(SYSDATE
--------------
20-JUL-2008
SQL>