2009-12-15 4 views

ответ

4

Oracle реализует «Integer» ANSI тип данных как синоним номер (38)

Для более подробной информации смотри «Learn Oracle: Datatypes for SQL and PL/SQL, Numbers»

Однако, в следующей таблице следует использовать в качестве отображения между типом данных в Oracle и MySQL:

"Oracle® Database SQL Developer Supplementary Information for MySQL Migrations"

Oracle и MySQL Сравниваемые> Типы данных> Сравнение типов данных

Основное различие, как объяснено here и here является то, что Oracle ЧИСЛО тип данных в формате переменной длины в то время как MySQL ДЕСЯТИЧНАЯ (п) тип данных используется, чтобы быть represented as strings that require one byte per digit or sign character (до версии 5.0.3)

(Oracle NUMBER Datatype) Внутренний цифровой формат

Oracle Database хранит числовые данные в формате с переменной длиной. Каждое значение - , хранящееся в научной нотации, с байтом 1 , используемым для хранения экспоненты, и до до 20 байтов для хранения мантиссы. Результирующее значение ограничено 38 цифрами точности. База данных Oracle не хранит начальные и конечные нули. Например, номер 412 равен , хранящемуся в формате, аналогичном 4.12 x 102, с 1 байтом, используемым для хранения экспоненты (2) и 0 байта, используемой для хранения трех значащих цифр мантиссы (4,1 , 2). Отрицательные числа включают знак в их длину.

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

ROUND((length(p)+s)/2))+1

, где s равно нулю, если число положительным, и с равно 1, если число является отрицательным.

нуля и положительная и отрицательная бесконечность (генерируются только на импорте из базы данных Oracle, версия 5) является хранится с использованием уникальных представлений. Нулевой и отрицательный бесконечности каждый требуется 1 байт; положительная бесконечность требует 2 байта.

и

(MySQL) ДЕСЯТИЧНАЯ Тип данных Изменения требования

Запоминающее для целой и дробной части каждого значения определяются отдельно. Для каждого , состоящего из девяти цифр, требуется четыре байта , а оставшиеся оставшиеся цифры over требуют некоторую долю из четырех байтов . [...]

Например, ДЕСЯТИЧНАЯ (18,9) колонка имеет девять цифр на обе стороны от десятичной запятой, поэтому целая часть и дробная часть каждого требуется четыре байта . Столбец DECIMAL (20,6) имеет четырнадцать целых цифр и шесть дробных цифр. Целочисленные числа требуют четыре байта для девяти цифр и три байта для оставшихся пяти цифр . Для шести цифр требуется три байта.