【问题标题】:Oracle to Postgres Migration to_binary_floatOracle 到 Postgres 的迁移 to_binary_float
【发布时间】:2020-02-10 18:48:14
【问题描述】:

请建议 to_binary_float() Oracle 函数的 Postgres 等效项。

但令我困惑的是,在 Postgres 中选择 cast(1234567898 as real) 和在 Oracle 中选择 select to_binary_float(1234567898) from dual 会显示两个不同的结果

【问题讨论】:

  • 您是否使用相同的工具来显示结果?不同的工具可能会以不同的方式格式化浮点值。你得到的值究竟是什么? (这可能是适合截图的少数情况之一)
  • 我认为你是对的。我使用rextester.com 执行oracle 查询和sqlfiddle.com 执行Postgre

标签: oracle postgresql


【解决方案1】:

试试CASTing:

SELECT CAST (<your_numeric_column> AS real);

【讨论】:

  • 我冒昧地修正了你的答案:floatdouble precision,而 Oracles binary_float` 是单精度。
  • 非常感谢您的即时回复。但让我感到困惑的是,postgre 中的 select cast(1234567898 as real) 和 oracle 中的 double 中的 select to_binary_float(1234567898) 显示了两个不同的结果跨度>
  • 不幸的是,我没有一个 oracle 数据库来尝试这个,所以我不知道为什么你会得到不同的结果。也就是说,当您执行select cast(1234567898 as real) 时,它可能会将1234567898 解释为“整数”数据类型而不是“数字”。尝试创建一个包含数字列的表并使用该列强制转换为浮点数。
猜你喜欢
  • 1970-01-01
  • 2021-04-19
  • 2012-02-14
  • 2017-02-10
  • 2017-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多