我有一个包含多个列的表,其中DATA_TYPE FLOAT , NUMBER 。带小数位的整数和小数位 例如 234 , 4 , 0 , 23.000000004 , 234,4444 ,...
我希望数字在最大值处有 2位小数。如果更多,那么请向上舍入。关!
希望通过 sqldeveloper 执行 .sql 脚本。欢迎更轻松的方法!
概要:
答案 0 :(得分:6)
最简单的可能是
之类的东西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 IMMEDIATE
或{{1}执行动态生成的SQL语句。这是编写,调试和维护的相当多的努力,但是如果你希望将来在将新列添加到表中时自动工作,这可能是值得的。
如果您有DBMS_SQL
列,请注意浮动本身就是不精确的。即使您舍入到2位小数,也不能保证存储的值始终为2位十进制数。您可能会发现无限大或小于您期望的值。如果您确实希望确保所有数字都具有2个特定精度,则应将这些列定义为不浮动的数字。