Определите фактическую точность и масштаб для числового типа данных Oracle.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Определите фактическую точность и масштаб для числового типа данных Oracle.

Сообщение Anonymous »

Один из наших источников данных Oracle содержит сотни таблиц, все числовые столбцы которых определены с использованием типа данных NUMBER без точности и масштаба. Но на самом деле столбец может хранить как целые, так и десятичные значения — невозможно определить это, глядя только на тип данных. Это большая проблема, потому что когда я пытаюсь загрузить какие-либо данные в инструменты больших данных (Sqoop, Hive, Spark и т. д.), все эти инструменты обрабатывают эти столбцы как строки, и это очень болезненная проблема. Я думаю, что это проблема всех инструментов на основе JDBC/Java.

Можно ли каким-то образом определить фактическую точность и масштаб значений, хранящихся в столбце типа NUMBER. Я надеюсь, что Oracle сохранит это где-нибудь в таблицах метаданных, но я нигде этого не вижу. Мое последнее средство — сделать случайную выборку данных в таблице и сохранить схему преобразования на стороне, но я надеюсь, что есть лучший способ. Действительно

Например, таблица TEST имеет три столбца: ID, AMOUNT и QUANTITY, все они объявлены. как ЧИСЛО без указания точности или масштаба.

Но на самом деле ID должен быть bigint, AMOUNT должен быть десятичным (18,6), а QUANTITY должен быть инт.

Код: Выделить всё

create table test (
ID number,
AMOUNT number,
QTY number
)

ID     AMOUNT    QTY
1      200.56    4
2      23.754    5
Я не могу выполнить сопоставление вручную, поскольку у меня 600 таблиц, и в каждой таблице 50–300 столбцов. Выборка данных — мое последнее средство.

Подробнее здесь: https://stackoverflow.com/questions/478 ... -data-type
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»