Разница в типе данных Redshift и Oracle NUMBER

#oracle #amazon-redshift #type-conversion

#Oracle #amazon-redshift #преобразование типов

Вопрос:

Я перехожу с Oracle на Redshift. У меня есть столбец с НОМЕРОМ (38,18) в Oracle и числовым (38,18) в Redshift. Если у меня есть значение, подобное 1200.0000, Oracle игнорирует нули после десятичных знаков, но redshift сохраняет то же представление. Есть ли причина этой разницы? Выходные данные будут использоваться для дальнейшей обработки EMR / Hive / Spark, я хочу быть осторожным и понимать разницу. Пожалуйста, обратите внимание, что если после десятичной точки есть ненулевое значение, Oracle сохраняет их, и эта разница возникает только для нулевых значений после десятичной точки.

Комментарии:

1. Используете ли вы один и тот же SQL-клиент для обеих СУБД? Если они разные, я уверен, что один отображает числа по-разному, чем другой.

2. Для ЧИСЛОВОГО (ЧИСЛОВОГО) типа данных 1200 = 1200,0000. Итак, почему вы думаете, что это проблема (даже если базы данных предпочитают хранить числа в разных форматах)?

3. Пустые дроби не имеют значения. Это наводит меня на мысль, что внутреннее хранилище для чисел в Redshift может быть символьным с преобразованием «на лету» в float. В любом случае причина несущественна. Кроме того факта, что если вы хотите отобразить 18 нулей после числа, вы должны преобразовать его в символ в Oracle.