我需要将varchar转换为float。 (varchar保证是一个数字)
我正在尝试在预先构建的表格上创建物化视图。因此,所有数据类型必须完全匹配...包括数据类型的精度和大小。原始列(在添加NVL之前)从精度为126的FLOAT数据类型中提取。当我尝试将varchar转换为精度为126的浮点数时,它似乎不包括126数据精度。 / p>
(我通过使用下面的查询转换为float(126)来测试它不包括126数据大小的事实。通过我的Toad IDE,我可以看到“ThisorThat”的精度浮动柱是38)。
我只是简单地使用NVL语句更新了我的物化视图......
Select Cast(NVL(thisFloat, thatFloat) as Float(126)) as ThisorThat
....
From tables;
我收到错误“Ora-12060:预构建表的形状与定义查询不匹配”,因为大小不同于我“预构建”的原始表。我需要以某种方式将varchar转换为显式大小为126的浮点数。任何想法?
版本:Oracle 10g
修改 这是一个link,这与我遇到的基本相同。
答案 0 :(得分:2)
使用
TO_BINARY_FLOAT(mynumberstring)
或
TO_BINARY_DOUBLE(mynumberstring)
你想要做的事实上不是演员,而是转换。