Oracle тип number: Типы данных — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

Содержание

Типы данных — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

Ниже приведен список типов данных, доступных в Oracle/PLSQL, который включает в себя символьные, числовые, дата/время, булевы LOB, RowId типы данных.

Символьные типы данных

Ниже перечислены символьные типы данных в Oracle/PLSQL:

Типы данныхРазмерОписание
char(размер)Максимальный размер 2000 байт.Где размер — количество символов фиксированной длины. Если сохраняемое значение короче, то дополняется пробелами; если длиннее, то выдается ошибка.
nchar(размер)Максимальный размер 2000 байт.Где размер — количество символов фиксированной длины в кодировке Unicode. Если сохраняемое значение короче, то дополняется пробелами; если длиннее, то выдается ошибка.
nvarchar2(размер)Максимальный размер 4000 байт.Где размер – количество сохраняемых символов в кодировке Unicode переменной длины.
varchar2(размер)Максимальный размер 4000 байт. Максимальный размер в PLSQL 32KB.Где размер – количество сохраняемых символов переменной длины.
longМаксимальный размер 2GB.Символьные данные переменной длины.
rawМаксимальный размер 2000 байт.Содержит двоичные данные переменной длины
long rawМаксимальный размер 2GB.Содержит двоичные данные переменной длины

Применение: Oracle 9i, Oracle 10g, Oracle 11g, Oracle 12c

Числовые типы данных

Ниже приведены числовые типы данных в Oracle/PLSQL:

Типы данныхРазмерОписание
number(точность,масштаб)Точность может быть в диапазоне от 1 до 38.
Масштаб может быть в диапазоне от -84 до 127.
Например,number (14,5) представляет собой число, которое имеет 9 знаков до запятой и 5 знаков после запятой.
numeric(точность,масштаб)Точность может быть в диапазоне от 1 до 38. Например, numeric(14,5) представляет собой число, которое имеет 9 знаков до запятой и 5 знаков после запятой.
dec(точность,масштаб)Точность может быть в диапазоне от 1 до 38.Например, dec (5,2) — это число, которое имеет 3 знака перед запятой и 2 знака после .
decimal(точность,масштаб)Точность может быть в диапазоне от 1 до 38.Например, decimal (5,2) — это число, которое имеет 3 знака перед запятой и 2 знака после .
PLS_INTEGERЦелые числа в диапазоне от -2,147,483,648 до
2,147,483,647
Значение PLS_INTEGER требуют меньше памяти и быстрее значений NUMBER

Применение: Oracle 9i, Oracle 10g, Oracle 11g, Oracle 12c

Дата/время типы данных

Ниже приведены типы данных дата/время в Oracle/PLSQL:

Типы данныхРазмерОписание
date
date может принимать значения от 1 января 4712 года до н.э. до 31 декабря 9999 года нашей эры.

Применение: Oracle 9i, Oracle 10g, Oracle 11g, Oracle 12c

Большие объекты (LOB) типы данных

Ниже перечислены типы данных LOB в Oracle/PLSQL:

Типы данныхРазмерОписание
bfileМаксимальный размер файла 4 ГБ.Файл locators, указывает на двоичный файл в файловой системе сервера (вне базы данных).
blobХранит до 4 ГБ двоичных данных.Хранит неструктурированные двоичные большие объекты.
clobХранит до 4 ГБ символьных данных.Хранит однобайтовые и многобайтовые символьные данные.
nclobХранит до 4 ГБ символьных текстовых данных.Сохраняет данные в кодировке unicode.

Применение: Oracle 9i, Oracle 10g, Oracle 11g, Oracle 12c

Rowid тип данных

Ниже перечислены типы данных Rowid в Oracle/PLSQL:

Типы данныхФорматОписание
rowidФормат строки: BBBBBBB.RRRR.FFFFF,Где BBBBBBB — это блок в файле базы данных; RRRR — строка в блоке; FFFFF — это файл базы данных.Двоичные данные фиксированной длины. Каждая запись в базе данных имеет физический адрес или идентификатор строки (rowid).

Булевы (BOOLEAN) типы данных

Типы данныхФорматОписание
BOOLEAN TRUE или FALSE. Может принимать значение NULLХранит логические значения, которые вы можете использовать в логических операциях.

Применение: Oracle 9i, Oracle 10g, Oracle 11g, Oracle 12c

Типы данных Oracle — SQL программирование

ORACLE

Как показано ниже, Oracle поддерживает множество типов данных, в том числе большинство стандартных типов SQL 2003. Естественно, для этого нужно скачать и установить сам ORACLE.

Типа для больших данных

В FILE (тип данных SQL 2003: DATALINK)

Содержит указатель на объект типа BLOB, хранимый вне пределов базы данных, но находящийся на локальном сервере и имеющий размер до 4 Гб. База данных осуществляет потоковый доступ по чтению (но не по записи) к этому внешнему объекту. Если вы удалите строку, содержащую значение типа BFILE, будет удален только указатель. Исходная структура файлов не затрагивается.

BINARY FLOAT(тип данных SQL 2003: FLOAT)

Хранит 32-битное число с плавающей точкой. BINARY DOUBLE (тип данных SQL 2003: FLOAT) Хранит 64-битное число с плавающей точкой.

BLOB (тип данных SQL 2003: BLOB)

Храпит большой двоичный объект (binary large object, BLOB) размером от 8 до 128 терабайт в зависимости от размера блока в базе данных. В Oracle большие двоичные объекты (BLOB, CLOB, NCLOB) имеют следующие ограничения.

  • Их нельзя выбирать с удаленной машины.
  • Их нельзя сохранять в кластерах.
  • Их нельзя объединять в типе varray.
  • Они не могут быть компонентом предложений ORDER BYw GROUP BY ъ запросе.
  • Их нельзя использовать в агрегатных функциях запроса.
  • На них нельзя ссылаться в запросах при помощи инструкций DISTINCT wUNIQUE или в соединениях.
  • На них нельзя ссылаться в предложениях ANALYZE…COMPUTE и ANALYZE… ESTIMATE.
  • Они не могут быть частью первичного ключа или ключа индекса.
  • Их нельзя использовать в предложении UPDATE OF триггера UPDATE.

CHAR(n) [BYTE | CHAR], СНАRACTER(n)[BYTE CHAR] (тип данных SQL 2003: CHARA CTER(n))

Хранит массив символьных данных фиксированной длины до 2000 байт. При указании атрибута BYTE длина массива измеряется в байтах. При указании атрибута CHAR длина измеряется в символах.

CLOB (тип данных SQL 2003: CLOB)

Хранит большой символьный объект (large character object, CLOB) размером от 8 до 128 терабайт в зависимости от размера блока в базе данных.

DATE (тип данных SQL 2003: DATE)

Хранит дату и время в диапазоне от 00:00:00 01-01-4712 до н. э. до 23:59:59 31-12-9999.

DECIMALfp, s) (тип данных SQL 2003: DECIMALfp, s))

Синоним типа NUMBER, принимающий в качестве аргументов точность и масштаб.

DOUBLE PRECISION (тип данных SQL 2003: DOUBLE PRECISION)

Хранит значения с плавающей точкой двойной точности. То же, что FLOAT(126).

FLOAT(n) (тип данных SQL 2003: FLOAT(n))

Хранит числовые данные с плавающей точкой с двоичной точностью до 126.

INTEGER(n) (тип данных SQL 2003: INTEGER)

Хранит целые числа со знаком и без знака с точностью до 38. Тип INTEGER считается синонимом NUMBER.

INTERVAL DAY (n) ТО SECOND (х) (тип данных SQL 2003: INTERVAL)

Хранит промежуток времени, измеряемый в днях, часах, минутах и секундах, п -число цифр в поле «день» (допустимые значения 0-9, по умолчанию — 2), а х-число цифр для долей секунды в поле секунд (допустимые значения 0-9, по умолчанию — 6).

INTERVAL YEAR (n) ТО MONTH (х) (тип данных SQL 2003: INTERVAL)

Хранит промежуток времени, измеряемый в годах и месяцах, где n — число цифр в поле года. Значение n может быть от 0 до 9, по умолчанию — 2.

LONG (тип данных SQL 2003: отсутствует)

Хранит массив символьных данных переменной длины до 2 Гб. Тем не менее нужно заметить, что Oracle в долгосрочной перспективе не планирует поддерживать тип LONG. Вместо этого типа старайтесь везде, где возможно, использовать другие типы, например CLOB.

LONG RAW (тип данных SQL 2003: отсутствует)

Хранит сырые двоичные данные переменной длины до 2 Гб. Типы LONG RAW и RA W обычно используются для хранения графики, звуковых данных, документов и других больших структур. Использование типа BLOB является более предпочтительным, чем применение LONG RAW, поскольку BLOB имеет меньше ограничений. Тип LONG RAW также выходит из употребления.

NATIONAL CHARACTER VARYING(n), NATIONAL CHAR VARYING(n), NCHAR VARYING(n)

Тип данных SQL 2003: NCHAR VARYlNG(n)) тo же, что и NVARCHAR2.

NCHAR(n), NATIONAL CHARACTER, NATIONAL CHAR(n) (тип данных SQL 2003:NATIONAL CHARACTER)

Хранит данные в формате символов UNICODE длиной от 1 до 2000 байт. По умолчанию — 1 байт.

NCLOB (тип данных SQL 2003: NCLOB)

Представляет собой CLOB с поддержкой многобайтовых символов и UNICODE размером от 8 до 128 терабайт в зависимости от размера блока базы данных.

NUMBER(p, s), NUMERIC(p, s) (тип данных SQL 2003: NUMERIC(p.s))

Хранит числа с точностью в пределах от 1 до 38 и масштабом от-84 до 127.

NVARCHAR2(n) (тип данных SQL 2003: отсутствует)

Представляет собой рекомендуемый Oracle тип для хранения символьных данных переменной длины. Может занимать от 1 до 4000 байт.

RAW(n) (тип данных SQL 2003: отсутствует)

Хранит массив сырых данных переменной длины до 2000 байт. Значение п указывает размер типа данных. В Oracle 10g тип RAW исключен. Смотрите LONG RAW.

REAL (тип данных SQL 2003: REAL)

Хранит значения с плавающей точкой с одинарной точностью. То же, что FLOAT(63).

ROW ID (тип данных SQL 2003: отсутствует)

Представляет собой уникальный идентификатор типа base-64 для каждой строки таблицы. Часто используется с псевдостолбцом ROWID.

SMALLINT

Тип данных SQL 2003: SMALL1NT, то же, что INTEGER.

TIMESTAMP(n){[WITH TIME ZONE] [WITH LOCAL TIME ZONE]} (тип данных SQL 2003: TIMESTAMP [WlTH TIME ZONE])

Значение полной даты и времени, где п — количество цифр для долей секунды в поле секунд (допустимые значения 0 — 9, по умолчанию — 6). При указании атрибута WITH TIME ZONE сохраняется переданный в качестве параметра часовой пояс (по умолчанию — часовой пояс текущего сеанса) и значение времени выдается с учетом этого часового пояса. При указании атрибута WITH LOCAL TIME ZONE данные хранятся с учетом часового пояса текущего сеанса и возвращаются также с учетом часового пояса текущего сеанса.

UROWID [(п)] (тип данных SQL 2003: отсутствует)

Хранит значение типа base-64, показывающее логический адрес строки в таблице. По умолчанию размер составляет 4000 байт. Вы можете при желании указать размер в пределах до 4000 байт.

VARCHAR(n), CHARACTER VARYING(n), CHAR VARYING(n) (тип данных SQL 2003: CHARACTER VARYING(n))

Хранит символьные данные размером от 1 до 4000 байт.

VARCHAR2(n [BYTE CHAR]) (тип данных SQL 2003: CHARACTER VARYING(n))

Хранит символьные данные переменной длины до 4000 байт (определяется параметром и). Атрибут BYTE показывает, что размер измеряется в байтах. Если вы используете атрибут CHAR, база Oracle должна провести внутреннее преобразование в определенное количество байт, которое должно соответствовать ограничению в 4000 байт.

XMLTYPE (тип данных SQL 2003: XML)

Хранит в базе Oracle данные формата XML. Доступ к данным XML осуществляется с помощью выражений XPath, а также нескольких встроенных XPath-функций, функций SQL и пакетов PL/SQL. Тип XMLTYPE определяется системой, поэтому его можно использовать в качестве аргумента функций, а также типа данных для столбца в таблице или представлении. При использовании этого типа в таблице данные можно сохранить в форме CLOB или связанного объекта.

Oracle не рекомендует использовать тип VARCHAR. В течение многих лет Oracle поощряет использование типа VARCHAR2.

Сопоставления типов данных Oracle — ADO.NET

  • Чтение занимает 3 мин

В этой статье

В следующей таблице представлены типы данных Oracle и их сопоставления объекту OracleDataReader.The following table lists Oracle data types and their mappings to the OracleDataReader.

Тип данных OracleOracle data type Тип данных .NET Framework, возвращаемый OracleDataReader.GetValue.NET Framework data type returned by OracleDataReader.GetValue Тип данных OracleClient, возвращаемый OracleDataReader.GetOracleValueOracleClient data type returned by OracleDataReader.GetOracleValue RemarksRemarks
BFILEBFILE Byte []Byte[] OracleBFile
BLOBBLOB Byte []Byte[] OracleLob
CHARCHAR StringString OracleString
CLOBCLOB StringString OracleLob
DATEDATE DateTimeDateTime OracleDateTime
FLOATFLOAT DecimalDecimal OracleNumber Этот тип данных является псевдонимом для типа данных Number и предназначен для того, чтобы функция OracleDataReader возвращала System. Decimal или OracleNumber вместо значения с плавающей запятой.This data type is an alias for the NUMBER data type, and is designed so that the OracleDataReader returns a System.Decimal or OracleNumber instead of a floating-point value. Использование типа данных .NET Framework может вызвать переполнение.Using the .NET Framework data type can cause an overflow.
INTEGERINTEGER DecimalDecimal OracleNumber Этот тип данных является псевдонимом для типа данных Number (38) и предназначен для того, чтобы функция OracleDataReader возвращала System. Decimal или OracleNumber вместо целого значения.This data type is an alias for the NUMBER(38) data type, and is designed so that the OracleDataReader returns a System.Decimal or OracleNumber instead of an integer value. Использование типа данных .NET Framework может вызвать переполнение.Using the .NET Framework data type can cause an overflow.
INTERVAL YEAR TO MONTHINTERVAL YEAR TO MONTH Int32Int32 OracleMonthSpan
INTERVAL DAY TO SECONDINTERVAL DAY TO SECOND TimeSpanTimeSpan OracleTimeSpan
LONGLONG StringString OracleString
LONG RAWLONG RAW Byte []Byte[] OracleBinary
NCHARNCHAR StringString OracleString
NCLOBNCLOB StringString OracleLob
НумерацияNUMBER DecimalDecimal OracleNumber Использование типа данных .NET Framework может вызвать переполнение.Using the .NET Framework data type can cause an overflow.
NVARCHAR2NVARCHAR2 StringString OracleString
RAWRAW Byte []Byte[] OracleBinary
REF CURSORREF CURSOR Тип данных курсора Oracle ref не поддерживается OracleDataReader объектом.The Oracle REF CURSOR data type is not supported by the OracleDataReader object.
ROWIDROWID StringString OracleString
TIMESTAMPTIMESTAMP DateTimeDateTime OracleDateTime
TIMESTAMP WITH LOCAL TIME ZONETIMESTAMP WITH LOCAL TIME ZONE DateTimeDateTime OracleDateTime
МЕТКА ВРЕМЕНИ С ЧАСОВЫМ ПОЯСОМTIMESTAMP WITH TIME ZONE DateTimeDateTime OracleDateTime
ЦЕЛОЕ ЧИСЛО БЕЗ ЗНАКАUNSIGNED INTEGER ЧислоNumber OracleNumber Этот тип данных является псевдонимом для типа данных Number (38) и предназначен для того, чтобы функция OracleDataReader возвращала значение System. Decimal или OracleNumber вместо целого числа без знака.This data type is an alias for the NUMBER(38) data type, and is designed so that the OracleDataReader returns a System.Decimal or OracleNumber instead of an unsigned integer value. Использование типа данных .NET Framework может вызвать переполнение.Using the .NET Framework data type can cause an overflow.
VARCHAR2VARCHAR2 StringString OracleString

В следующей таблице перечислены типы данных Oracle и типы данных .NET Framework (System. Data. DbType и OracleType ), которые используются при их привязке в качестве параметров.The following table lists Oracle data types and the .NET Framework data types (System.Data.DbType and OracleType) to use when binding them as parameters.

Тип данных OracleOracle data type Перечисление DbType, которое привязывается как параметрDbType enumeration to bind as a parameter Перечисление OracleType, которое привязывается как параметрOracleType enumeration to bind as a parameter RemarksRemarks
BFILEBFILE BСведенияBFile Oracle допускает привязку типа BFILE только в качестве параметра BFILE .Oracle only allows binding a BFILE as a BFILE parameter. Поставщик данных .NET для Oracle не создает его автоматически при попытке привязать значение, отличное отBFILE , например Byte [] или OracleBinary .The .NET Data Provider for Oracle does not automatically construct one for you if you attempt to bind a non-BFILE value, such as byte[] or OracleBinary.
BLOBBLOB Большие двоичные объектыBlob Oracle позволяет привязать большой двоичный объект только в качестве параметра большого двоичного объекта .Oracle only allows binding a BLOB as a BLOB parameter. Поставщик данных .NET для Oracle не создает его автоматически при попытке привязать значение, отличное отбольшого двоичного объекта , например Byte [] или OracleBinary .The .NET Data Provider for Oracle does not automatically construct one for you if you attempt to bind a non-BLOB value, such as byte[] or OracleBinary.
CHARCHAR AnsiStringFixedLengthAnsiStringFixedLength CharChar
CLOBCLOB CLOBClob Oracle допускает привязку CLOB только в качестве параметра CLOB .Oracle only allows binding a CLOB as a CLOB parameter. Поставщик данных .NET для Oracle не создает его автоматически при попытке привязать значение, не являющеесяCLOB , например System. String или OracleString .The .NET Data Provider for Oracle does not automatically construct one for you if you attempt to bind a non-CLOB value, such as System.String or OracleString.
DATEDATE DateTimeDateTime DateTimeDateTime
FLOATFLOAT Одинарный, двойной, десятичныйSingle, Double, Decimal Float, Double, NumberFloat, Double, Number Size Определяет System. Data. DBType и OracleType .Size determines the System.Data.DBType and OracleType.
INTEGERINTEGER SByte, Int16, Int32, Int64, DecimalSByte, Int16, Int32, Int64, Decimal SByte, Int16, Int32, NumberSByte, Int16, Int32, Number Size Определяет System. Data. DBType и OracleType .Size determines the System.Data.DBType and OracleType.
INTERVAL YEAR TO MONTHINTERVAL YEAR TO MONTH Int32Int32 IntervalYearToMonthIntervalYearToMonth OracleType доступен только при использование как клиентского, так и серверного программного обеспечения Oracle 9i.OracleType is only available when using both Oracle 9i client and server software.
INTERVAL DAY TO SECONDINTERVAL DAY TO SECOND ОбъектObject IntervalDayToSecondIntervalDayToSecond OracleType доступен только при использование как клиентского, так и серверного программного обеспечения Oracle 9i.OracleType is only available when using both Oracle 9i client and server software.
LONGLONG AnsiStringAnsiString LongVarCharLongVarChar
LONG RAWLONG RAW ДвоичныйBinary LongRawLongRaw
NCHARNCHAR StringFixedLengthStringFixedLength NCharNChar
NCLOBNCLOB NClobNClob Oracle позволяет привязать параметр NCLOB только в качестве параметра NCLOB .Oracle only allows binding a NCLOB as a NCLOB parameter. Поставщик данных .NET для Oracle не создает его автоматически при попытке привязать значение, отличное отNCLOB , например System. String или OracleString .The .NET Data Provider for Oracle does not automatically construct one for you if you attempt to bind a non-NCLOB value, such as System.String or OracleString.
НумерацияNUMBER VarNumericVarNumeric ЧислоNumber
NVARCHAR2NVARCHAR2 StringString NVarCharNVarChar
RAWRAW ДвоичныйBinary RawRaw
REF CURSORREF CURSOR КурсорCursor Дополнительные сведения см. в разделе Oracle REF CURSOR.For more information, see Oracle REF CURSORs.
ROWIDROWID AnsiStringAnsiString ROWIDRowid
TIMESTAMPTIMESTAMP DateTimeDateTime TimestampTimestamp OracleType доступен только при использование как клиентского, так и серверного программного обеспечения Oracle 9i.OracleType is only available when using both Oracle 9i client and server software.
TIMESTAMP WITH LOCAL TIME ZONETIMESTAMP WITH LOCAL TIME ZONE DateTimeDateTime TimestampLocalTimestampLocal OracleType доступен только при использование как клиентского, так и серверного программного обеспечения Oracle 9i.OracleType is only available when using both Oracle 9i client and server software.
МЕТКА ВРЕМЕНИ С ЧАСОВЫМ ПОЯСОМTIMESTAMP WITH TIME ZONE DateTimeDateTime TimestampWithTzTimestampWithTz OracleType доступен только при использование как клиентского, так и серверного программного обеспечения Oracle 9i.OracleType is only available when using both Oracle 9i client and server software.
ЦЕЛОЕ ЧИСЛО БЕЗ ЗНАКАUNSIGNED INTEGER Byte, UInt16, UInt32, UInt64, DecimalByte, UInt16, UInt32, UInt64, Decimal Byte, UInt16, Uint32, NumberByte, UInt16, Uint32, Number Size Определяет System. Data. DBType и OracleType .Size determines the System.Data.DBType and OracleType.
VARCHAR2VARCHAR2 AnsiStringAnsiString VarCharVarChar

Значения инпутаутпут, Outputи ReturnValue параметердиректион , используемые Value свойством OracleParameter объекта, являются .NET Framework типами данных, если только входное значение не является типом данных Oracle (например, OracleNumber или OracleString ).The InputOutput, Output, and ReturnValue ParameterDirection values used by the Value property of the OracleParameter object are .NET Framework data types, unless the input value is an Oracle data type (for example, OracleNumber or OracleString). Это не относится к типам данных ref Cursor, BFILEили LOB .This does not apply to REF CURSOR, BFILE, or LOB data types.

См. также разделSee also

Функции конвертации типов данных доступные в SQL

Строчные функции конвертации типа данных разработаны для изменения типа данных столбца, выражения или литерала. Наиболее часто используемые функции конвертации это TO_CHAR, TO_NUMBER и TO_DATE. TO_CHAR преобразует числа и даты в символьные данные, когда TO_NUMBER и TO_DATE преобразует символьные данные соответственно в число и дату.

 

Функции конвертации

 

Oracle позволяет определять столбцы с типами данных ANSI, DB2 и SQL/DS. Эти типы преобразуется к типам данных Oracle. У каждого столбца определяется тип данных который ограничивает природу данных которые могут храниться в этом столбце. Столбец NUMBER не может хранить символьную информацию. Столбец DATE не может хранить случайные символы или числа. VARCHAR2 может хранить символьные эквиваленты чисел и дат.

Если функция у которой входной параметр является строкой получает на вход число, Oracle автоматически конвертирует его в символьный эквивалент. Если функция с входными параметрами типа данных число или дата получает на вход строку, то должны соблюдаться определённые условия для автоматической конвертации. Несмотря на то что автоматическая неявная конвертация доступна, гораздо более понятно и надёжно явно сконвертировать один тип данных в другой перед вызовом строчной функции.

 

Неявная конвертация типов

 

Значения, которые не соответствуют типам данных параметров функции неявно конвертируется перед выполнением если это возможно. Оба типа данных VARCHAR2 и CHAR используются как символьные типы данных. Символьные типы данных достаточно гибкие для хранения практически любой информации. Таким образом, ДАТА и ЧИСЛО можно легко преобразовать в их символьный эквивалент. Такая конвертация известна как преобразования число в строку и дата в строку. Рассмотрим следующие запросы

 

Query 1: select length(1234567890) from dual

Query 2: select length(SYSDATE) from dual

 

Оба запроса используют функцию LENGTH у которой входной параметр определён как строка. Число 1234567890 в запросе один неявно конвертируется в строку ‘1234567890’ перед вычисление функции LENGTH и результат функции будет 10. Запрос номер два вычисляет функцию SYSDATE предположим 7 апреля 2008 года. Результат преобразуется в строку ’07-APR-08’ и результат выполнения функции LENGTH будет число 9.

Обычно не принято допускать неявную конвертацию строк в числа, так как единственная ситуация, когда это возможно, это если строка представляет собой валидное число. Строка ‘11’ будет неявно преобразована в число 11, но строка ’11.123.345’ не будет, как показано в следующих примерах

 

Query 3: select mod(’11’, 2) from dual

Query 4: select mod(‘11.123’, 2) from dual

Query 5: select mod(‘11.123.456’, 2) from dual

Query 6: select mod(‘$11’, 2) from dual

 

Запросы 3 и 4 неявно преобразовали строки ‘11’ и ’11.123’ в числа 11 и 11.123 соответственно, перед вызовом функции MOD которая в свою очередь вернула результат 1 и 1.123. Запрос 5 вернул ошибку ‘ORA-1722: invalid number’, когда Oracle попытался неявно преобразовать строку в число, так как ‘11.123.456’ не является корректным числом. Запрос 6 также вернул ошибку так как символ доллара не может бять неявно преобразован в число.

Неявная конвертация строки в дату возможна, когда строка удовлетворяет следующим шаблонам: [D|DD] separator1 [MON|MONTH] separator2][R|RR|YY|YYYY], где D и DD это день MON первые три буквы месяца, MONTH – полное название месяца. R и RR YY и YYYY отображают одну, две и четыре цифры года соответственно. Параметром separator1 и separator2 может быть практически любой спец символ, включая сюда пробел, табуляцию, знаки пунктуации и т.д. Таблица 10-2 показывает неявную конвертацию строки в дату, включая вызов функций работы с датами и результаты. Эти результаты предполагают, что система использует американскую локаль.

 

TIP Несмотря на то что неявная конвертация типов доступна, лучше использовать явный вызов функции конвертации перед использование данным в других функциях. Конвертация строки в число и дату использует маску форматирования.

 

Явная конвертация типов данных

 

Функции, которые конвертирует значение из одного типа данных в другой известны как явное преобразование типов. Они возвращают значение, которое будет гарантировано нужного типа данных и являются надёжным методом конвертации данных.

Число и дату можно явно конвертировать в строку используя функцию TO_CHAR. Строку можно явно конвертировать в число используя функцию TO_NUMBER. Функция TO_DATE используется для конвертации строку в DATE. Маски форматирования Oracle позволяют гибко контролировать процесс конвертации строки в число или дату.

 

Exam tip

Понимание широко используемых масок форматирования проверяется достаточно просто вопросами вида: какой результат вернёт вызов функций TO_CHAR(TO_DATE(’01-JAN-00′,’DD-MON-RR’),’Day’).

 

Использование функций TO_CHAR, TO_NUMBER и TO_DATE

 

При сертификации очень часто используются вопросы о функциях TO_NUMBER, TO_DATE и TO_CHAR с примерами для анализа. Обсуждение функции TO_CHAR разделим на две части: конвертация даты в строку и конвертация числа в строку. Такое разделение основано на том что для разных типов данных доступны разные маски форматирования. Помимо этих функций существует много других, но эти используется наиболее часто.

 

Использование функций конвертации

 

Во многих ситуациях возникает потребность в использовании функций конвертации, начиная от форматирования даты в отчётах и до проверки численных значений в символьных столбцах перед стартом арифметических вычислений.

Таблица 10-3 показывает синтаксис строчных функций конвертации данных

Необязательный параметр поддержки национального формата (nls_parameters) полезен для указания языка и форматирования, в котором названия дней, месяцев и разделители разрядов, целой и дробной части заранее предопределены. На рисунке 10-2 отображено представление NLS_SESSION_PARAMETERS которое содержит значения параментов NLS для текущей сессии. По умолчанию значение NLS_CURRENCY – знак доллара, но это можно изменить на уровне сессии. Например, для изменения символа валюты на строку ‘GBP’ можно выполнить запрос

ALTER SESSION SET NLS_CURRENCY=’GBP’

 

Рисунок 10-2 – Представление NLS_SESSION_PARAMETERS

 

Конвертация числа в строку используя функцию TO_CHAR

 

Функция TO_CHAR возвращает значение типа VARCHAR2. Когда входных параметром является число то доступны некоторые параметры форматирования. Синтаксис команды TO_CHAR(num, [format], [nls_parameter]). Параметр num обязательный и должен быть числом. Необязательный параметр format можно использовать для указания информации о форматировании, такой как длина, символ валюты, позиция разделителя дробной и целой части и разделитель разрядов (три разряда) и должен быть заключен в одинарные кавычки. Доступны различные опции форматирования и часть из них представлена в таблице 10-4. Рассмотрим два запроса

 

Query 1: select to_char(00001)||’ is a special number’ from dual;

Query 2: select to_char(00001, ‘0999999’)||’ is a special number’ from dual;

 

В запросе номер один у числа 00001 убираются ведущие нули, значение преобразуется в строку ‘1’ и возвращается результат ‘1 is a special number’. Зпрос номер два использует маску форматирования ‘0999999’ для числа 00001 преобразуя число в строку ‘0000001’ и возвращая результат ‘0000001 is a special number’. 0 и 6 девяток в маске форматирования указывают функции TO_CHAR что необходимо использовать ведущие нули, и длина строки должна быть 7. Таким образом строка, возвращаемая функцией TO_CHAR содержит семь символов.

 

Tip Конвертация чисел в строки надёжный способ убедиться что функция и SQL запрос в целом, который ожидает символьного значения, не вернёт ошибку когда встретится число. Конвертация чисел в строки часто используется для форматирования значений для отчетов. Маска форматирования поддерживает символ валюты, разделитель порядков и разделитель целой и дробной части, что часто используется при отображении финансовой информации.

 

Конвертация даты в строку используя функцию TO_CHAR

 

Вы можете использовать преимущества модели масок форматирования при конвертации ДАТЫ в практически любой вариант отображения даты как символьного значения используя функцию TO_CHAR. Синтаксис функции TO_CHAR(date1, [format], [nls_parameter]).

Только параметр date1 обязательный; тогда он должен быть значением, которое может неявно преобразоваться в строку. Необязательный параметр format регистрозависимый и должен быть обрамлён одинарными кавычками. Маска форматирования указывает какие лементы даты должы быть выбраны и как отображать названия элементов даты: полные названия или аббревиатуры. Названия дней и месяцев автоматически разделяются пробелом. Такое поведение можно изменить, используя параметр маски fill mode (fm). Указав в начале маски параметр fm, вы укажете Oracle о необходимости убрать все пробелы. Доступно много опций для маски форматирования, часть из которых отображена в таблице 10-5. Рассмотрим три запроса

 

Query 1: select to_char(sysdate)||’ is today»s date’ from dual;

Query 2: select to_char(sysdate,’Month’)||’is a special time’ from dual;

Query 3: select to_char(sysdate,’fmMonth’)||’is a special time’ from dual;

 

Если текущая системная дата 3 января 2009 года и по умолчанию формат отображения DD/MON/RR тогда запрос один вернёт строку ‘03/JAN/09 is todays date’. Во втором запросе обратите внимание на две детали: во-первых, только месяц выбирается из даты, и во-вторых так как маска форматирования регистрозавсимая и в запросе используется ‘Month’, то запрос вернёт ‘January is a special time’. Нет нужды добавлять пробел в начале литерала, так как функция TO_CHAR автоматически добавит пробел к названию месяца. Если бы маска во втором запросе была ‘MONTH’ то запрос вернул бы ‘JANUARY is a special time’. Параметр fm в третьем запросе препятствует добавлению пробелов и результатом будет ‘Januaryis a special time’. В таблице 10-5 предполагается что обрабатывается дата 2 июня 1975 года и текущий год 2009.

Параметры форматирования, связанные с неделей, кварталом, веком и другими более редко использующимися элементами даты показаны на рисунке 10-7. Столбец результата предполагает, что функция использовалась для работы с датой 24 сентября 1000 года, с маской форматирования указанной в столбец format element.

Компонент время в типе данных дата выбирается, используя модели форматирования в таблице 10-7. Результат рассчитывается функцией TO_CHAR используя дату 27 июня 2010 года время 21:35:13 с маской форматирования указанной в столбце format element.

Некоторые различные элементы, которые можно использовать в форматировании даты и времени перечислены в таблице 10-8. Знаки пунктуации используются для разделения элементов форматирования. Три типа суффиксов существуют для форматирования элементов. Более того, символьные литералы могут быть включены в модель форматирования если они заключены в двойные кавычки. Результаты в таблице 10-8 получены используя функцию TO_CHAR для даты 12 сентября 2008 года 14:31 с маской форматирования указанной в соответствующем столбце.

 

Таблица JOB_HISTORY хранит информацию о должностях сотрудника, которые он занимал в компании. Запрос на рисунке 10-3 выбирает информацию из этой таблицы о конце срока действия должности сотрудника для каждого сотрудинка на основании столбцов END_DATE, EMPLOYEE_ID и JOB_ID и форматирует результат в красивое предложение. Символьное выражение объединяется с функцией TO_CHAR в которой используется маска ‘fmDay «the «ddth «of» Month YYYY’. Параметр fm используется чтобы убрать пробелы в имени дня недели и месяца. Два литерата ограниченые двойными кавычками используются для добавления читабельности результату. Литерал “th” применяется к элементу даты чтобы сделать литературно правильным отображение даты как 17th или 31th. ‘Month’ в маске означает использовать полное имя месяца и наконец YYYY форматирует год как все четыре символа года.

 

Рисунок 10-3 – Запрос в таблицу JOB_HISTORY

 

select ‘Employee ‘||EMPLOYEE_ID||’ quit as ‘||JOB_ID||’ on ‘||TO_CHAR(END_DATE,’fmDay «the «ddth «of» Month YYYY’) «Quitting Date»

FROM JOB_HISTORY

ORDER BY END_DATE;

Несмотря на то что компонент «век» не отображается по умолчанию, он хранится в базе данных и доступен для запроса. Маска форматирования DD-MON-RR используется по умолчанию для ввода значений и отображения. Когда значение добавляется или изменяется если явно неуказан век, то используется век из функции SYSDATE. Формат RR отличается от формата YY и так как RR также использует значение столетия. Влияние значения столетия на формат RR легче понять если рассмотреть следующие принципы

  • Если две последние цифры текущего года между 0 и 49, а в указанном значении даты две последние цифры года между 50 и 99 то используется предыдущий век. Предположим, что текущая дата 2 июня 2007 года. Значение века для даты 24-JUNE-94 года будет 20
  • Если две цифры текущего года между 50-99 и указанной даты также между 55 и 99, то возвращается текущий век. Преположим что текущая дата 2 июня 1975 года. Тогда значение века для 24-JUL-94 будет 20.
  • Если две цифры текущей даты между 50 и 99, а в укащанной дате год между 0 и 49 – то считается следующий век. Предположим, что текущая дата 2 июня 1975 года, тогда для значения 24-JUL-07 значение века будет 21.

 

Конвертация строки в дату используя функцию TO_DATE

 

Функция TO_DATE возвращает значение типа данных DATE. Строка, конвертируемая в дату может содержать все или часть компонентов, составляющих тип DATE. Когда строка содержащая только часть компонентов даты преобразуется в дату, Oracle использует значение по умолчанию для составления валидного значения типа DATE. Части строки сопоставляются с элементами даты используя маску (или модель) форматирования. Синтаксис функции TO_DATE(string1, [format], [nls_parameter]).

Только параметра string1 обязателен, и eсли маска форматирования не указана, string1 должна быть в формат неявно конвертируемом в дату. Необязательный параметр format используется практически всегда и должен быть заключён в одинарные кавычки. Маска форматирования идентича перечисленным в таблицах 10-5, 10-6, и 10-7. У функции TO_DATE есть модификатор fx, которые используется подобно параметру fm функции TO_CHAR. Параметр fx требует обязательного совпадения строки и маски форматирования. Если строка не совпадает с маской – возвращается ошибка. Рассмотрим несколько примеров

 

Query 1: select to_date(’25-DEC-2010′) from dual;

Query 2: select to_date(’25-DEC’) from dual;

Query 3: select to_date(’25-DEC’, ‘DD-MON’) from dual;

Query 4: select to_date(’25-DEC-2010 18:03:45′, ‘DD-MON-YYYY Hh34:MI:SS’) from dual;

Query 5: select to_date(’25-DEC-10′, ‘fxDD-MON-YYYY’) from dual;

 

Запрос 1 преобразует строку ’25-DEC-2010’ и строка может быть преобразована в дату используя маску DD-MON-YYYY. Дефис можно заменить на другой разделитель. Так как не было указано никакой информации о времени то используется значение по-умолчанию 00:00:00. Запрос 2 не может неявно преобразовать строку в дату, так как недостаточно информации и возвращается ошибка ORA-01840: input value is not long enough for date format. Указав маску DD-MON для строки ’25-DEC’ в запросе номер три, Oracle может преобразовать значение в дату, но так как год и время не указаны, в значении года будет использоваться значение года функции SYSDATE, а время установлено в полночь. Если текущий год будет 2009, то запрос 3 вернёт дату 25/DEC/09 00:00:00. Запрос 4 преобразует строку с явно указанными всеми компнонентами даты и времени. Запрос 5 использует параметра fx. Так как год в строке указан двумя символами, а требуемый формат предполагает четыре цифры года, то запрос возвращает ошибку ORA-01862: the numeric value does not match the length of the format item.

 

Конвертация строки в число используя функцию TO_NUMBER

 

Функция TO_NUMBER возвращает значение типа данных NUMBER. Исходная строка должна быть составлена таким образом, чтобы все несовместимые символы отсутствовали или были указаны в соответствующей маске форматирования. Синтаксис функции TO_NUMBER(string1, [format], [nls_parameter]). Только string1 является обязательным параметром, и если не указан параметр format то значение должно быть таким, чтобы была возможность неявно сконвертировать его в число. Маски форматирования идентичны перечисленным в таблице 10-4. Рассмотрим запросы

 

Query 1: select to_number(‘$1,000.55’) from dual;

Query 2: select to_number(‘$1,000.55′,’$999,999.99’) from dual;

 

Запрос один не может неявно преобразовать строку, так как она содержит знак валюты и разделители, которые явно неуказаны в маске, поэтому возвращается ошибка ORA-1722: invalid number. Запрос два находит символ валюты, запятой и точки в маске форматирования и несмотря на то что длина маски больше чем чем исходное значение в строке, возвращается число 1000.55

 

Exam tip

Функция TO_NUMBER конвертирует значение строки в число. Если вы используете число длиннее чем маска, возвращается ошибка. Если вы конвертируете число используя более длинную маску – возвращается значение исходной длины. Не путайте TO_NUMBER с TO_CHAR. Например TO_NUMBER(‘123.45’,’999.9’) вернёт ошибку, когда TO_CHAR(123.45,’999.9’) вернёт 123.6

Типы Данных | ora-sql.ru

Когда Вы идентифицируете столбец для таблицы, Вы должны обеспечить тип данных для столбца.

Есть несколько доступных типов данных:

Тип данных Описание
VARCHAR2 (размер)Символьные данные переменной длины (Максимальный размер должен быть определен: минимальный размер равен 1; максимальный размер равен 4000.)
CHAR [(размер)] Символьные данные фиксированной длиной размер в байтах (Минимальный размер и размер по умолчанию равны 1; максимальный размер равен 2000.)
NUMBER [(p, s)] Число имеющее точность p и масштаб s (Точность является общим количеством десятичных цифр, а масштаб является числом цифр справа от десятичной точки; точность может колебаться от 1 до 38, а масштаб может колебаться от –84 до 127.)
DATE Значения даты и времени, ближайшие к секунде между 1 января, 4712 до н.э. и 31 декабря, 9999 нашей эры.
LONG Символьные данные переменной длины (до 2 Гбайт)
CLOB Символьные данные (до 4 Гбайт)

Тип данных Описание
RAW(размер) Необработанные двоичные данные длиной заданного размера (Максимальный размер должен быть определен: максимальный размер 2000.)
LONG RAW Необработанные двоичные данные переменной длины (до 2 Гбайт)
BLOB Двоичные данные (до 4 Гбайт)
BFILE Двоичные данные сохраненные во внешнем файле (до 4 Гбайт)
ROWID Число, представляющие уникальный адрес строки в ее таблице

Указания

  • Столбец LONG не копируется, когда таблица создается, используя подзапрос.

  • Слолбец LONG не может быть включен в предложение GROUP BY или ORDER BY.

  • Только один столбец LONG может использоваться на таблицу.

  • Никакие ограничения не могут быть определены для столбца LONG.

  • Вы можете использовать столбец CLOB, а не a столбец LONG.

Далее: Получение Данных из Представления и Изменение Представления

7.2. Основные типы данных Oracle

Информация, хранимая в базе данных, может быть разнообразной: строки символов, числа, даты и т.д. Для хранения информации СУБД Oracle поддерживает различные типы данных. Рассмотрим основные из них.

При дальнейшем изложении материала необязательные параметры и синтаксические конструкции будут указываться в квадратных скобках.

7.2.1. Типы данных для хранения строк символов

Тип CHARACTER или CHAR используется для хранения строк фиксированной длины.

Синтаксис: CHARACTER[(длина)] или CHAR[(длина)].

Для хранения строк резервируется определенное в параметре длина пространство. При необходимости короткая строка дополняется пробелами. Параметр длина является необязательным. Если длина строки не указана явно, она полагается равной 1. Максимальное значение параметра длина — 255 символов.

Тип VARCHAR используется для хранения строк переменной длины. Для хранения строк резервируется реально необходимое пространство.

Синтаксис: VARCHAR [(длина)].

Параметр длина является необязательным. Если длина строки не указана явно, она полагается равной 1 символу. Максимальное значение параметра длина – 4000 символов.

Тип VARCHAR2 (применяется только в Oracle) используется для хранения строк переменной длины. Для хранения строк резервируется реально необходимое пространство. Основная причина введения типа VARCHAR2 состоит в том, что фирма Oracle декларирует неизменность этого типа в более поздних реализациях Oracle, в то время как тип VARCHAR будет соответствовать требованиям стандартов SQL.

Синтаксис: VARCHAR2(длина).

Длина строки должна быть указана явно. Минимальное значение параметра длина – 1 символ, максимальное значение параметра длина – 4000 символов.

7.2.2. Типы данных для хранения чисел

Тип INTEGER используется для представления целых чисел в диапазоне от -231 до 231.

Синтаксис: INTEGER или INT.

Тип NUMBER (применяется только в Oracle) используется для представления чисел с заданной точностью.

Синтаксис: NUMBER [(точность [, масштаб])].

Если значение параметра точность не указано явно, оно полагается равным 38. Значение параметра масштаб по умолчанию предполагается равным 0. Значение параметра точность может изменяться от 1 до 38, значение параметра масштаб может изменяться от -84 до 127. Использование отрицательных значений масштаба означает сдвиг десятичной точки в сторону старших разрядов. Например, определение NUMBER (7,-3) означает округление до тысяч.

В таблице 3 приведены представления числа 123456.789 с различной точностью и масштабом.

Таблица 3. Представления числа 123456.789

с различной точностью и масштабом.

Определение

Представление

при выполнении действий

NUMBER

123456

NUMBER(7,1)

123456.7

NUMBER(5,2)

ошибка в данных

NUMBER(8,3)

ошибка в данных

NUMBER(9,3)

123456.789

NUMBER(7,-2)

123500

Для совместимости с другими СУБД на уровне запросов СУБД Oracle поддерживает типы данных DECIMAL и NUMERIC. Типы DECIMAL И NUMERIC полностью эквивалентны типу NUMBER.

Сопоставление типов данных Oracle с PostgreSQL / Хабр

Один из самых первых и распространенных вопросов в процессе миграции базы данных с Oracle на PostgreSQL — «Как типы данных Oracle сопоставимы с типами PostgreSQL?».

Простой ответ заключается в том, что они очень совместимы и легко сопоставляются. В приведенной ниже таблице показано сравнение и сопоставление типов данных Oracle с PostgreSQL для наиболее распространенных типов Oracle. Эти базовые типы данных лишь поверхностно демонстрируют то, что может сделать PostgreSQL, — она ​​имеет очень богатую систему типов и поддерживает настраиваемые типы. В состав встроенных типов входят JSON, массивы, UUID, IP-адреса, геометрические типы, перечисления и многое другое.

Тип данных Oracle Тип данных PostgreSQL Комментарии
Char() Char()
Char(1) Char(1) Если используется в качестве булевого флага, то лучше использовать тип данных boolean
Varchar2() Varchar()
Timestamp Timestamptz Вообще, мы рекомендуем хранить timestamp в качестве timestamp с часовым поясом (timestamptz), что эквивалентно timestamp Oracle с местным часовым поясом. Таким образом сохраняются все значения в UTC, даже если сервер или клиент базы данных находятся в разных часовых поясах, что позволяет избежать множества проблем. Но, возможно, какой-то код приложения должен использовать типы, имеющие информацию о часовом поясе — если это важный момент, используйте timestamp без часового пояса, чтобы минимизировать изменения миграции.
Date Timestamptz PostgreSQL тип “Date” хранит только дату и не хранит время
Date Date
Number() Numeric() PostgreSQL Numeric похож на Oracle Number с переменной диапазоном и точностью, поэтому может использоваться для любых числовых полей, но иногда более предпочтительны целочисленные поля и числа с плавающей запятой.
Number(5,0) Integer Integer и Bigint работают лучше, чем Number (), когда используются для joinов больших таблиц, поэтому предпочтительнее сопоставление с Int для полей первичного и внешнего ключей, обычно используемых для joinов.
Number(10,0) Bigint
Number( ,2) Numeric( ,2) PostgreSQL Numeric (, 2) идеально подходит для денежных типов, поскольку он обладает конкретной точностью (если вы не имеете дело с йеной и не нуждаетесь в типе (, 0)). Тип «money» эквивалентен типу numeric по точности, но иногда вызывает неожиданности для приложений из-за неявных предположений о форматировании. Никогда не используйте представление с плавающей запятой (float / double) из-за потенциального округления во время арифметики.
CLOB Text Text намного проще в использовании, без функций LOB, просто рассматривайте его как символьное поле. Может хранить до 1 ГБ текста.
Long Text
BLOB Bytea
Long raw
Raw
XMLTYPE XML
UROWID OID Использование OID в Postgres не эквивалентно и не обеспечивает такое же преимущество в производительности, что и ROWID, используемое в Oracle.

Oracle / PLSQL: типы данных


Ниже приводится список типов данных, доступных в Oracle / PLSQL, который включает символьные, числовые, дату / время, типы данных LOB и rowid.

Типы данных символов

Ниже приведены типов данных символов в Oracle / PLSQL:

Синтаксис типа данных Oracle 9i Оракул 10g Оракул 11g Пояснение
знак (размер) Максимальный размер 2000 байт. Максимальный размер 2000 байт. Максимальный размер 2000 байт. Где размер — количество символов для хранения. Струны фиксированной длины. Мягкое пространство.
nchar (размер) Максимальный размер 2000 байт. Максимальный размер 2000 байт. Максимальный размер 2000 байт. Где размер — количество символов для хранения. Строка NLS фиксированной длины.
nvarchar2 (размер) Максимальный размер 4000 байт. Максимальный размер 4000 байт. Максимальный размер 4000 байт. Где размер — количество символов для хранения. Строка NLS переменной длины.
varchar2 (размер)

Максимальный размер 4000 байт.

Максимальный размер 32 КБ в PLSQL.

Максимальный размер 4000 байт.

Максимальный размер 32 КБ в PLSQL.

Максимальный размер 4000 байт.

Максимальный размер 32 КБ в PLSQL.

Где размер — количество символов для хранения. Строка переменной длины.
длинный Максимальный размер 2 ГБ. Максимальный размер 2 ГБ. Максимальный размер 2 ГБ. Струны переменной длины. (обратная совместимость)
сырые Максимальный размер 2000 байт. Максимальный размер 2000 байт. Максимальный размер 2000 байт. Двоичные строки переменной длины
длинное сырье Максимальный размер 2 ГБ. Максимальный размер 2 ГБ. Максимальный размер 2 ГБ. Двоичные строки переменной длины. (обратная совместимость)

Числовые типы данных

Ниже приведены числовых типов данных в Oracle / PLSQL:

Синтаксис типа данных Oracle 9i Оракул 10g Оракул 11g Пояснение
номер (п, с) Точность может варьироваться от 1 до 38.
Шкала может находиться в диапазоне от -84 до 127.
Точность может варьироваться от 1 до 38.
Масштаб может находиться в диапазоне от -84 до 127.
Точность может варьироваться от 1 до 38.
Масштаб может находиться в диапазоне от -84 до 127.

Где p — точность, а s — масштаб.

Например, число (7,2) — это число, у которого 5 цифр перед десятичной дробью и 2 цифры после десятичной.

числовой (п, с) Точность может варьироваться от 1 до 38. Точность может варьироваться от 1 до 38. Точность может варьироваться от 1 до 38.

Где p — точность, а s — масштаб.

Например, numeric (7,2) — это число, у которого 5 цифр перед десятичной дробью и 2 цифры после десятичной.

поплавок
дек (п, с) Точность может варьироваться от 1 до 38. Точность может варьироваться от 1 до 38. Точность может варьироваться от 1 до 38.

Где p — точность, а s — масштаб.

Например, dec (3,1) — это число, у которого 2 цифры перед десятичной дробью и 1 цифра после десятичной.

десятичное (p, s) Точность может варьироваться от 1 до 38. Точность может варьироваться от 1 до 38. Точность может варьироваться от 1 до 38.

Где p — точность, а s — масштаб.

Например, десятичное (3,1) — это число, которое имеет 2 цифры перед десятичной и 1 цифру после десятичной дроби.

целое
внутр
smallint
реальный
двойной точности

Дата / время Типы данных

Ниже приведены типов данных даты / времени в Oracle / PLSQL:

Синтаксис типа данных Oracle 9i Оракул 10g Оракул 11g Пояснение
дата Дата между 1 января 4712 г. до н.э. и 31 декабря 9999 г. Дата между 1 января 4712 г. до н.э. и 31 декабря 9999 г. Дата между 1 января 4712 г. до н.э. и 31 декабря 9999 г.
отметка времени (точность долей секунды ) с точностью до долей секунды должно быть числом от 0 до 9. (по умолчанию 6) точность до дробных секунд должно быть числом от 0 до 9. (по умолчанию 6) с точностью до долей секунды должно быть числом от 0 до 9.(по умолчанию 6)

Включает год, месяц, день, час, минуту и ​​секунды.

Например:
отметка времени (6)

отметка времени (точность долей секунды ) с часовым поясом Точность долей секунд должно быть числом от 0 до 9. (по умолчанию 6) точность до долей секунды должно быть числом от 0 до 9. (по умолчанию 6) с точностью до долей секунды должно быть числом от 0 до 9.(по умолчанию 6)

Включает год, месяц, день, час, минуту и ​​секунды; со значением смещения часового пояса.

Например:
отметка времени (5) с часовым поясом

метка времени ( с точностью до долей секунды ) с местным часовым поясом точность до долей секунды должно быть числом от 0 до 9. (по умолчанию 6) с точностью до долей секунды должно быть числом от 0 до 9.(по умолчанию 6) точность до долей секунды должно быть числом от 0 до 9. (по умолчанию 6) Включает год, месяц, день, час, минуту и ​​секунды; с часовым поясом, выраженным как часовой пояс сеанса.

Например:
отметка времени (4) с местным часовым поясом

год интервала
(точность год )
до месяца
с точностью до года — количество цифр в году.(по умолчанию 2) с точностью до года — количество цифр в году. (по умолчанию 2) с точностью до года — количество цифр в году. (по умолчанию 2)

Период времени в годах и месяцах.

Например:
интервал от года (4) до месяца

интервал дня
(точность дней )
до секунды ( точность долей секунды )

с точностью до дня должно быть числом от 0 до 9.(по умолчанию 2)

с точностью до долей секунды должно быть числом от 0 до 9. (по умолчанию 6)

с точностью до дня должно быть числом от 0 до 9. (по умолчанию 2)

Точность долей секунд должно быть числом от 0 до 9. (по умолчанию 6)

с точностью до дня должно быть числом от 0 до 9. (по умолчанию 2)

с точностью до долей секунды должно быть числом от 0 до 9.(по умолчанию 6)

Период времени, хранящийся в днях, часах, минутах и ​​секундах.

Например:
интервал от дня (2) до секунды (6)

Типы данных больших объектов (LOB)

Ниже приведены типов данных LOB в Oracle / PLSQL:

Синтаксис типа данных Oracle 9i Оракул 10g Оракул 11g Пояснение
файл Максимальный размер файла 4 ГБ. Максимальный размер файла 2 32 -1 байт. Максимальный размер файла 2 64 -1 байт. Локаторы файлов, указывающие на двоичный файл в файловой системе сервера (вне базы данных).
капля Хранить до 4 ГБ двоичных данных. Хранить до (4 гигабайт -1) * (значение параметра CHUNK хранилища больших объектов). Хранить до (4 гигабайт -1) * (значение параметра CHUNK хранилища больших объектов). Хранит большие неструктурированные двоичные объекты.
гвоздь Хранить до 4 ГБ символьных данных. Хранить до (4 гигабайт -1) * (значение параметра CHUNK хранилища больших объектов) символьных данных. Хранить до (4 гигабайт -1) * (значение параметра CHUNK хранилища больших объектов) символьных данных. Хранит однобайтовые и многобайтовые символьные данные.
нклоб Хранить до 4 ГБ символьных текстовых данных. Хранить до (4 гигабайт -1) * (значение параметра CHUNK хранилища больших объектов) символьных текстовых данных. Хранить до (4 гигабайт -1) * (значение параметра CHUNK хранилища больших объектов) символьных текстовых данных. Хранит данные Unicode.

Типы данных Rowid

Ниже приведены типов данных Rowid в Oracle / PLSQL:

Синтаксис типа данных Oracle 9i Оракул 10g Оракул 11g Пояснение
рядный

Формат rowid: BBBBBBB.RRRR.FFFFF

Где BBBBBBB — это блок в файле базы данных;
RRRR — строка в блоке;
FFFFF — это файл базы данных.

Формат rowid: BBBBBBB.RRRR.FFFFF

Где BBBBBBB — это блок в файле базы данных;
RRRR — строка в блоке;
FFFFF — это файл базы данных.

Формат rowid: BBBBBBB.RRRR.FFFFF

Где BBBBBBB — это блок в файле базы данных;
RRRR — строка в блоке;
FFFFF — это файл базы данных.

Двоичные данные фиксированной длины. Каждая запись в базе данных имеет физический адрес или rowid .
urowid (размер)

Универсальный рядный.

Где размер является необязательным.

.

Oracle PL / SQL Типы данных: логическое значение, число, дата [Пример]

  • Home
  • Testing

      • Back
      • Agile Testing
      • BugZilla
      • Cucumber
      • 9000 Testing 9000 Database Testing 9000 Jmeter
      • JIRA
      • Назад
      • JUnit
      • LoadRunner
      • Ручное тестирование
      • Мобильное тестирование
      • Mantis
      • Почтальон
      • QTP
      • 0003
      • Тестирование
      • Selenium
      • SoapUI
      • Управление тестированием
      • TestLink
  • SAP

      • Назад
      • ABAP
      • APO
      • Начинающий
      • Basis
      • BODS
      • BI
      • BPC
      • CO
      • Назад
      • CRM
      • Crystal Reports
      • Crystal Reports
      • Заработная плата
      • Назад
      • PI / PO
      • PP
      • SD
      • SAPUI5
      • Безопасность
      • Менеджер решений
      • Successfactors
      • SAP Back Tutorials
      • 9007
          • Apache
          • AngularJS
          • ASP.Net
          • C
          • C #
          • C ++
          • CodeIgniter
          • СУБД
          • JavaScript
          • Назад
          • Java
          • JSP
          • Kotlin
          • Linux
          • Linux
          • Kotlin
          • Linux
          • js
          • Perl
          • Назад
          • PHP
          • PL / SQL
          • PostgreSQL
          • Python
          • ReactJS
          • Ruby & Rails
          • Scala
          • SQL
          • 000
          • SQL
          • 000 0003 SQL 000 0003 SQL 000
          • UML
          • VB.Net
          • VBScript
          • Веб-службы
          • WPF
      • Обязательно учите!

          • Назад
          • Бухгалтерский учет
          • Алгоритмы
          • Android
          • Блокчейн
          • Business Analyst
          • Создание веб-сайта
          • CCNA
          • Облачные вычисления
          • 0003 COBOL
          • 000 Compiler
              9000 Встроенный
            • 000 9000 Compiler
            • Ethical Hacking
            • Учебники по Excel
            • Программирование на Go
            • IoT
            • ITIL
            • Jenkins
            • MIS
            • Сети
            • Операционная система
            • 0003
            • Назад
            • Управление проектами Обзоры
            • Salesforce
            • SEO
            • Разработка программного обеспечения
            • VB A
        • Big Data

            • Назад
            • AWS
            • BigData
            • Cassandra
            • Cognos
            • Хранилище данных
            • 0003
            • HBOps
            • 0003
            • HBOps
            • MicroStrategy
            • MongoDB
        .

        сопоставлений типов данных Oracle — ADO.NET

        • 3 минуты на чтение

        В этой статье

        В следующей таблице перечислены типы данных Oracle и их сопоставления с OracleDataReader.

        В следующей таблице перечислены типы данных Oracle и типы данных .NET Framework ( System.Data.DbType и OracleType) для использования при связывании их в качестве параметров.

        Размер Размер
        Тип данных Oracle Перечисление DbType для привязки в качестве параметра Перечисление OracleType для привязки в качестве параметра Замечания
        BFILE B Файл Oracle позволяет привязать BFILE только как параметр BFILE . Поставщик данных .NET для Oracle не создает его автоматически, если вы пытаетесь привязать значение, отличное от BFILE, , например byte [] или OracleBinary.
        BLOB Капля Oracle позволяет привязать BLOB только как параметр BLOB . Поставщик данных .NET для Oracle не создаст его автоматически, если вы попытаетесь привязать значение, отличное от BLOB, , например byte [] или OracleBinary.
        СИМВОЛ AnsiStringFixedLength Char
        CLOB Гребень Oracle позволяет привязать CLOB только как параметр CLOB .Поставщик данных .NET для Oracle не создает его автоматически, если вы пытаетесь привязать значение, отличное от CLOB , например System.String или OracleString.
        ДАТА Дата и время Дата и время
        ПОПЛАВОК Одинарное, двойное, десятичное Поплавок, двойной, номер Размер определяет систему .Data.DBType и OracleType.
        ЦЕЛОЕ SByte, Int16, Int32, Int64, Decimal SByte, Int16, Int32, Number определяет System.Data.DBType, и OracleType.
        ИНТЕРВАЛ ГОДА К МЕСЯЦУ Int32 Интервал Год К Месяц OracleType доступен только при использовании клиентского и серверного программного обеспечения Oracle 9i.
        ИНТЕРВАЛ ДО ВТОРОГО Объект IntervalDayToSecond OracleType доступен только при использовании клиентского и серверного программного обеспечения Oracle 9i.
        ДЛИННЫЙ AnsiString LongVarChar
        ДЛИННЫЙ RAW двоичный LongRaw
        NCHAR StringFixedLength NChar
        NCLOB NClob Oracle допускает привязку NCLOB только как параметр NCLOB .Поставщик данных .NET для Oracle не создает его автоматически, если вы пытаетесь привязать значение, отличное от NCLOB , например System.String или OracleString.
        НОМЕР VarNumeric Номер
        NVARCHAR2 Строка NVarChar
        RAW двоичный Необработанный
        REF КУРСОР Курсор Для получения дополнительной информации см. Oracle REF CURSORs.
        ROWID AnsiString Ряд
        ТАМПЕР ВРЕМЕНИ Дата и время Отметка времени OracleType доступен только при использовании клиентского и серверного программного обеспечения Oracle 9i.
        ВРЕМЯ С МЕСТНЫМ ЧАСОВЫМ ПОЯСОМ Дата и время Метка времени Местная OracleType доступен только при использовании клиентского и серверного программного обеспечения Oracle 9i.
        ВРЕМЯ С ЧАСОВЫМ ПОЯСОМ Дата и время Метка времени с Tz OracleType доступен только при использовании клиентского и серверного программного обеспечения Oracle 9i.
        НЕПОДПИСАННОЕ ЦЕЛОЕ байт, UInt16, UInt32, UInt64, десятичный байт, UInt16, Uint32, номер определяет System.Data.DBType, и OracleType.
        VARCHAR2 AnsiString ВарЧар

        Значения InputOutput , Output и ReturnValue ParameterDirection , используемые свойством Value объекта OracleParameter, являются типами данных .NET Framework, если только входное значение не является типом данных Oracle (например, OracleNumber или OracleString). Это не относится к типам данных REF CURSOR , BFILE или LOB .

        См. Также

        .

        Oracle number тип данных — qaru Переполнение стека
        1. Около
        2. Продукты
        3. Для команд
        1. Переполнение стека Общественные вопросы и ответы
        2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
        3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
        4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
        5. Реклама Обратитесь к разработчикам и технологам со всего мира
        6. О компании
        .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *