Мне нужно бросить варчар на поплавок. (Varchar гарантированно будет числом)
Я пытаюсь создать материализованное представление поверх готовой таблицы. Из-за этого все типы данных должны точно соответствовать ... включая точность и размер типов данных. Исходный столбец (до того, как был добавлен NVL) извлекал данные из типа FLOAT с точностью до 126. Когда я пытаюсь привести varchar к значению с плавающей точкой 126, кажется, что он не включает точность данных 126.
(Я проверил тот факт, что он не включал размер данных 126, создав стандартное представление с приведенным ниже запросом, который отбрасывает с плавающей точкой (126). Через мою IDE Toad я мог видеть точность "ThisorThat" число с плавающей точкой было 38).
Я просто обновил свое материализованное представление с помощью выражения NVL, например, так ...
Select Cast(NVL(thisFloat, thatFloat) as Float(126)) as ThisorThat
....
From tables;
Я получаю сообщение об ошибке «Ora-12060: форма предварительно созданной таблицы не соответствует запросу определения», поскольку размеры отличаются от исходной таблицы, на которой я «собираюсь». Мне нужно как-то бросить varchar в float с явным размером 126. Есть идеи?
Версия: Oracle 10g
Edit:
Вот ссылка , с которой я в основном сталкиваюсь.