flo*_*opp 1 sql database oracle sql-scripts oracle-sqldeveloper
我有一个包含多个列的表,DATA_TYPE FLOAT,NUMBER.有小数位数的整数和小数位数.
例如 234,4,0,23.000000004,234,4444,...
我想这些数字有2位小数在最大.如果更多,那么请向上舍入.关!
希望通过sqldeveloper执行.sql脚本.欢迎更轻松的方法!
剧情简介:
最简单的事情就是这样
UPDATE table_name
SET column1_name = round(column1_name, 2 ),
column2_name = round(column2_name, 2 ),
...
columnN_name = round(columnN_name, 2 )
Run Code Online (Sandbox Code Playgroud)
在哪里输入要修改的列数.如果要动态生成脚本,可以编写一个匿名PL/SQL块,该块使用dba|all|user_tab_columns数据字典视图为每个表生成相应的SQL语句,并使用EXECUTE IMMEDIATE或DBMS_SQL执行动态生成的SQL语句.这是编写,调试和维护的相当多的努力,但是如果你希望将来在将新列添加到表中时自动工作,这可能是值得的.
如果您有FLOAT列,请注意浮动本质上是不精确的.即使您舍入到2位小数,也不能保证存储的值始终为2位十进制数.您可能会发现无限大或小于您期望的值.如果您确实希望确保所有数字都具有2个特定精度,则应将这些列定义为不浮点数.