Oracle:如何舍入和更新表格中的所有数字? [关闭]

Posted

技术标签:

【中文标题】Oracle:如何舍入和更新表格中的所有数字? [关闭]【英文标题】:Oracle: How to round and update all numbers in a table? [closed] 【发布时间】:2013-10-08 23:52:35 【问题描述】:

我有一个包含几列的表,DATA_TYPE FLOAT, NUMBER。有整数和带小数位的小数位。例如 23440、23.000000004, 234,4444, ...

作业:

我希望这些数字在最大2位小数。如果更多,则四舍五入。关闭! 希望是通过sqldeveloper 执行.sql 脚本。欢迎使用更简单的方法!

概要

如果超过 2 位小数,则为整数 更新值 在几个选定的列上使用 .sql 脚本 sqldeveloper 首选

【问题讨论】:

【参考方案1】:

最简单的可能是

UPDATE table_name
   SET column1_name = round(column1_name, 2 ),
       column2_name = round(column2_name, 2 ),
       ...
       columnN_name = round(columnN_name, 2 )

您在哪里输入要修改的列数。如果要动态生成脚本,可以编写一个匿名 PL/SQL 块,该块使用 dba|all|user_tab_columns 数据字典视图为每个表生成适当的 SQL 语句,并使用 EXECUTE IMMEDIATEDBMS_SQL 执行动态生成的SQL 语句。这在编写、调试和维护方面要付出更多的努力,但如果您希望它在将来向表中添加新列时自动工作,这可能才值得。

如果您有 FLOAT 列,请注意浮点数本质上是不精确的。即使您四舍五入到 2 位小数,也不能保证存储的值将始终为 2 位小数。您可能会发现比您预期的要大或小得多的值。如果您真的想确保所有数字都具有 2 特定精度,则应将这些列定义为数字而不是浮点数。

【讨论】:

以上是关于Oracle:如何舍入和更新表格中的所有数字? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在动作脚本中舍入数字

Access中的日期格式如何转换?

如何在 R 中舍入包含一些字符变量的 data.frame?

每次出现新行时如何更新所有可见的 UITableViewCell

oracle中如何删除所有表

oracle中的ceil函数和floor函数的区别