1. Главная страница » Компьютеры » Oracle integer максимальное значение

Oracle integer максимальное значение

Автор: | 16.12.2019

Содержание

Содержание

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.

Читайте также:  Hp support assistant download

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.

Дополнительная информация по теме

Основные типы данных используемые в платформе DB2, отличие от классического стандарта

Какие типы данных поддерживает и использует платформа MySQL, отличие от стандарта SQL

Какие основные типы данных используются в платформе PostgreSQL, отличие от стандарта SQL

Какие основные типы данных используются в платформе SQL Server, отличие от стандарта SQL

Базы данных

Ниже приведен список типов данных, доступных в 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

Every constant, variable, and parameter has a data type (also called a type ) that determines its storage format, constraints, valid range of values, and operations that can be performed on it. PL/SQL provides many predefined data types and subtypes, and lets you define your own PL/SQL subtypes.

A subtype is a subset of another data type, which is called its base type . A subtype has the same valid operations as its base type, but only a subset of its valid values. Subtypes can increase reliability, provide compatibility with ANSI/ISO types, and improve readability by indicating the intended use of constants and variables.

This chapter explains the basic, frequently used predefined PL/SQL data types and subtypes, how to define and use your own PL/SQL subtypes, and PL/SQL data type conversion. Later chapters explain specialized predefined data types.

Table 3-1 lists the categories of predefined PL/SQL data types, describes the data they store, and tells where to find information about the specialized data types.

Читайте также:  Https uslugi mosreg ru obr school

Table 3-1 Categories of Predefined PL/SQL Data Types

Data Type Category Data Description

Single values with no internal components.

Data items that have internal components that can be accessed individually. Explained in Chapter 5, "Using PL/SQL Collections and Records."

Pointers to other data items. Explained in Using Cursor Variables (REF CURSORs).

Large Object (LOB)

Pointers to large objects that are stored separately from other data items, such as text, graphic images, video clips, and sound waveforms.

Predefined PL/SQL Scalar Data Types and Subtypes

Scalar data types store single values with no internal components. Table 3-2 lists the predefined PL/SQL scalar data types and describes the data they store.

Table 3-2 Categories of Predefined PL/SQL Scalar Data Types

Category Data Description

Numeric values, on which you can perform arithmetic operations.

Alphanumeric values that represent single characters or strings of characters, which you can manipulate.

Logical values, on which you can perform logical operations.

Dates and times, which you can manipulate.

Time intervals, which you can manipulate.

Predefined PL/SQL Numeric Data Types and Subtypes

Numeric data types let you store numeric data, represent quantities, and perform calculations. Table 3-3 lists the predefined PL/SQL numeric types and describes the data they store.

Table 3-3 Predefined PL/SQL Numeric Data Types

Data Type Data Description

PLS_INTEGER or BINARY_INTEGER

Signed integer in range -2,147,483,648 through 2,147,483,647, represented in 32 bits

Single-precision IEEE 754-format floating-point number

Double-precision IEEE 754-format floating-point number

Fixed-point or floating-point number with absolute value in range 1E-130 to (but not including) 1.0E126. A NUMBER variable can also represent 0.

PLS_INTEGER and BINARY_INTEGER Data Types

The PLS_INTEGER and BINARY_INTEGER data types are identical. For simplicity, this document uses " PLS_INTEGER " to mean both PLS_INTEGER and BINARY_INTEGER .

The PLS_INTEGER data type stores signed integers in the range -2,147,483,648 through 2,147,483,647, represented in 32 bits.

The PLS_INTEGER data type has the following advantages over the NUMBER data type and NUMBER subtypes:

PLS_INTEGER values require less storage.

PLS_INTEGER operations use hardware arithmetic, so they are faster than NUMBER operations, which use library arithmetic.

For efficiency, use PLS_INTEGER values for all calculations that fall within its range. For calculations outside the PLS_INTEGER range, use INTEGER , a predefined subtype of the NUMBER data type.

When a calculation with two PLS_INTEGER data types overflows the PLS_INTEGER range, an overflow exception is raised even if the result is assigned to a NUMBER data type.

Table 3-4 lists the predefined subtypes of the PLS_INTEGER data type and describes the data they store.

Table 3-4 Predefined Subtypes of PLS_INTEGER Data Type

Data Type Data Description

Nonnegative PLS_INTEGER value

Nonnegative PLS_INTEGER value with NOT NULL constraint

Positive PLS_INTEGER value

Positive PLS_INTEGER value with NOT NULL constraint

PLS_INTEGER value -1, 0, or 1 (useful for programming tri-state logic)

PLS_INTEGER value with NOT NULL constraint

SIMPLE_INTEGER Subtype of PLS_INTEGER

SIMPLE_INTEGER is a predefined subtype of the PLS_INTEGER data type that has the same range as PLS_INTEGER (-2,147,483,648 through 2,147,483,647) and has a NOT NULL constraint. It differs significantly from PLS_INTEGER in its overflow semantics.

You can use SIMPLE_INTEGER when the value will never be NULL and overflow checking is unnecessary. Without the overhead of checking for nullness and overflow, SIMPLE_INTEGER provides significantly better performance than PLS_INTEGER when PLSQL_CODE_TYPE=’NATIVE’ , because arithmetic operations on SIMPLE_INTEGER values are done directly in the hardware. When PLSQL_CODE_TYPE=’INTERPRETED’ , the performance improvement is smaller.

Overflow Semantics

The overflow semantics of SIMPLE_INTEGER differ significantly from those of PLS_INTEGER . An arithmetic operation that increases a PLS_INTEGER value to greater than 2,147,483,647 or decrease it to less than -2,147,483,648 causes error ORA-01426. In contrast, when the following PL/SQL block is run from SQL*Plus, it runs without error:

Overloading Rules

In overloaded subprograms, SIMPLE_INTEGER and PLS_INTEGER actual parameters can be substituted for each other.

If all of their operands or arguments have the data type SIMPLE_INTEGER , the following produce SIMPLE_INTEGER results, using two’s complement arithmetic and ignoring overflows:

If some but not all operands or arguments have the data type SIMPLE_INTEGER , those of the data type SIMPLE_INTEGER are implicitly cast to PLS_INTEGER NOT NULL .

Integer Literals

Integer literals in the SIMPLE_INTEGER range have the dataype SIMPLE_INTEGER . This relieves you from explicitly casting each integer literal to SIMPLE_INTEGER in arithmetic expressions computed using two’s complement arithmetic.

If and only if all operands and arguments have the dataype SIMPLE_INTEGER , PL/SQL uses two’s complement arithmetic and ignores overflows. Because overflows are ignored, values can wrap from positive to negative or from negative to positive; for example:

2 30 + 2 30 = 0x40000000 + 0x40000000 = 0x80000000 = -2 31

-2 31 + -2 31 = 0x80000000 + 0x80000000 = 0x00000000 = 0

To ensure backward compatibility, when all operands in an arithmetic expression are integer literals, PL/SQL treats the integer literals as if they were cast to PLS_INTEGER .

Cast Operations

A cast operation that coerces a PLS_INTEGER value to the SIMPLE_INTEGER data type makes no conversion if the source value is not NULL . If the source value is NULL , a run-time exception is raised.

A cast operation that coerces a SIMPLE_INTEGER value to the PLS_INTEGER data type makes no conversion. This operation always succeeds (no exception is raised).

Compiler Warnings

The compiler issues a warning in the following cases:

An operation mixes SIMPLE_INTEGER values with values of other numeric types.

A SIMPLE_INTEGER value is passed as a parameter, a bind, or a define where a PLS_INTEGER is expected.

BINARY_FLOAT and BINARY_DOUBLE Data Types

The BINARY_FLOAT and BINARY_DOUBLE data types represent single-precision and double-precision IEEE 754-format floating-point numbers, respectively.

A BINARY_FLOAT literal ends with f (for example, 2.07f ). A BINARY_DOUBLE literal ends with d (for example, 3.000094d ).

BINARY_FLOAT and BINARY_DOUBLE computations do not raise exceptions; therefore, you must check the values that they produce for conditions such as overflow and underflow, using the predefined constants listed and described in Table 3-5. For example:

Table 3-5 Predefined PL/SQL BINARY_FLOAT and BINARY_DOUBLE Constants Foot 1

Constant Description

BINARY_FLOAT value for which the condition IS NAN (not a number) is true

Single-precision positive infinity

Maximum normal BINARY_FLOAT value

Minimum normal BINARY_FLOAT value

Maximum subnormal BINARY_FLOAT value

Minimum subnormal BINARY_FLOAT value

BINARY_DOUBLE value for which the condition IS NAN (not a number) is true

Double-precision positive infinity

Maximum normal BINARY_DOUBLE value

Minimum normal BINARY_DOUBLE value

Maximum subnormal BINARY_DOUBLE value

Minimum subnormal BINARY_DOUBLE value

Footnote 1 Also predefined by SQL

In the IEEE-754 standard, subnormal ranges of values are intended to reduce problems caused by underflow to zero.

BINARY_FLOAT and BINARY_DOUBLE data types are primarily for high-speed scientific computation, as explained in Writing Computation-Intensive PL/SQL Programs.

Читайте также:  A data premier pro sp920 128

Guidelines for Overloading with Numeric Types, for information about writing libraries that accept different numeric types

SIMPLE_FLOAT and SIMPLE_DOUBLE are predefined subtypes of the BINARY_FLOAT and BINARY_DOUBLE data types, respectively. Each subtype has the same range as its base type and has a NOT NULL constraint.

You can use SIMPLE_FLOAT and SIMPLE_DOUBLE when the value will never be NULL . Without the overhead of checking for nullness, SIMPLE_FLOAT and SIMPLE_DOUBLE provide significantly better performance than BINARY_FLOAT and BINARY_DOUBLE when PLSQL_CODE_TYPE=’NATIVE’ , because arithmetic operations on SIMPLE_FLOAT and SIMPLE_DOUBLE values are done directly in the hardware. When PLSQL_CODE_TYPE=’INTERPRETED’ , the performance improvement is smaller.

NUMBER Data Type

The NUMBER data type stores fixed-point or floating-point numbers with absolute values in the range 1E-130 up to (but not including) 1.0E126 . A NUMBER variable can also represent 0 .

Oracle recommends using only NUMBER literals and results of NUMBER computations that are within the specified range. Otherwise, the following happen:

Any value that is too small is rounded to zero.

A literal value that is too large causes a compilation error.

A computation result that is too large is undefined, causing unreliable results and possibly run-time errors.

A NUMBER value has both precision (its total number of digits) and scale (the number of digits to the right of the decimal point).

The syntax for specifying a fixed-point NUMBER is:

For an integer, the scale is zero. The syntax for specifying an integer NUMBER is:

In a floating-point number, the decimal point can float to any position. The syntax for specifying a floating-point NUMBER is:

Both precision and scale must be integer literals, not constants or variables.

For precision , the maximum value is 38. The default value is 39 or 40, or the maximum for your system, whichever is least.

For scale , the minimum and maximum values are -84 and 127, respectively. The default value is zero.

Scale determines where rounding occurs. For example, a value whose scale is 2 is rounded to the nearest hundredth (3.454 becomes 3.45 and 3.456 becomes 3.46). A negative scale causes rounding to the left of the decimal point. For example, a value whose scale is -3 is rounded to the nearest thousand (34462 becomes 34000 and 34562 becomes 35000). A value whose scale is 0 is rounded to the nearest integer (3.4562 becomes 3 and 3.56 becomes 4).

For more information about the NUMBER data type, see Oracle Database SQL Language Reference .

Table 3-6 lists the predefined subtypes of the NUMBER data type and describes the data they store.

Table 3-6 Predefined Subtypes of NUMBER Data Type

Data Type Description

DEC , DECIMAL , or NUMERIC

Fixed-point NUMBER with maximum precision of 38 decimal digits

DOUBLE PRECISION or FLOAT

Floating-point NUMBER with maximum precision of 126 binary digits (approximately 38 decimal digits)

INT , INTEGER , or SMALLINT

Integer with maximum precision of 38 decimal digits

Floating-point NUMBER with maximum precision of 63 binary digits (approximately 18 decimal digits)

Predefined PL/SQL Character Data Types and Subtypes

Character data types let you store alphanumeric values that represent single characters or strings of characters, which you can manipulate. Table 3-7 describes the predefined PL/SQL character types and describes the data they store.

Table 3-7 Predefined PL/SQL Character Data Types Foot 1

Data Type Data Description

Fixed-length character string with maximum size of 32,767 bytes

Variable-length character string with maximum size of 32,767 bytes

Variable-length binary or byte string with maximum size of 32,767 bytes, not interpreted by PL/SQL

Fixed-length national character string with maximum size of 32,767 bytes

Variable-length national character string with maximum size of 32,767 bytes

Variable-length character string with maximum size of 32,760 bytes

Variable-length binary or byte string with maximum size of 32,760 bytes, not interpreted by PL/SQL

Physical row identifier, the address of a row in an ordinary table

Universal row identifier (physical, logical, or foreign row identifier)

Footnote 1 Supported only for backward compatibility with existing applications

CHAR and VARCHAR2 Data Types

The CHAR and VARCHAR2 data types store fixed-length and variable-length character strings, respectively. All string literals have data type CHAR .

How CHAR and VARCHAR2 data is represented internally depends on the database character set specified with the CHARACTER SET clause of the CREATE DATABASE statement, which is described in Oracle Database SQL Language Reference .

The syntax for specifying a CHAR or VARCHAR2 data item is:

The maximum_size must be an integer literal in the range 1..32767, not a constant or variable. The default value is one.

The default size unit ( CHAR or BYTE ) is determined by the NLS_LENGTH_SEMANTICS initialization parameter. When a PL/SQL subprogram is compiled, the setting of this parameter is recorded, so that the same setting is used when the subprogram is recompiled after being invalidated. For more information about NLS_LENGTH_SEMANTICS , see Oracle Database Reference .

The maximum size of a CHAR or VARCHAR2 data item is 32,767 bytes, whether you specify maximum_size in characters or bytes. The maximum number of characters in a CHAR or VARCHAR2 data item depends on how the character set is encoded. For a single-byte character set, the maximum size of a CHAR or VARCHAR2 data item is 32,767 characters. For an n -byte character set, the maximum size of a CHAR or VARCHAR2 data item is 32,767/ n characters, rounded down to the nearest integer. For a multiple-byte character set, specify maximum_size in characters to ensure that a CHAR( n ) or VARCHAR2( n ) variable can store n multiple-byte characters.

If the character value that you assign to a character variable is longer than the maximum size of the variable, PL/SQL does not truncate the value or strip trailing blanks; it stops the assignment and raises the predefined exception VALUE_ERROR .

For example, given the declaration:

the following assignment raises VALUE_ERROR :

If the character value that you insert into a database column is longer than the defined width of the column, PL/SQL does not truncate the value or strip trailing blanks; it stops the insertion and raises an exception.

To strip trailing blanks from a character value before assigning it to a variable or inserting it into a database column, use the built-in function RTRIM . For example, given the preceding declaration, the following assignment does not raise an exception:

Differences Between CHAR and VARCHAR2 Data Types

CHAR and VARCHAR2 data types differ in the following:

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

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