Oracle 能不能修改默认的rounding mode?(急问) 一般来说,Oracle采用四舍五入。看到DB2可以设置current rounding mode,一共可以有五种选择。Oracle有没有类似的功能?还是一定要调用特定的函数,才能够不用四舍五入而是直接截断?多谢先! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 --使用round函数:SQL> select round(12.34567,2) from dual;ROUND(12.34567,2)----------------- 12.35SQL> 不是这个问题啦!我知道这个函数。我是说,比如下面这个例子:SQL> create table testt (c1 number(5,2));SQL> insert into testt values(123.456);SQL> select * from testt; C1---------- 123.46默认情况下,我插入的值是123.46。如果是DB2,默认状况是直接切断:db2 => create table testt(c1 number(5,2))db2 => insert into testt values(123.456)db2 => select * from testtC1------- 123.45 1 record(s) selected.但是,我可以update db cfg using decflt_rounding ROUND_HALF_UP,connect reset, connect to db,然后就可以四舍五入了!db2 => insert into testt values(123.456)db2 => select * from testtC1------- 123.45 123.46 2 record(s) selected.Oracle 有没有类似的功能?还是oracle必须insert into testt values(TRUNC(123.456,2))这样的函数才能够改变默认的rounding模式? 通过设定字段来自动取值如下:SQL> create table tt(a number(6));Table createdSQL> insert into tt values(123.23);1 row insertedSQL> insert into tt values(24);1 row insertedSQL> insert into tt values(123.2356);1 row insertedSQL> select * from tt; A------- 123 24 123 如下:SQL> insert into tt values(23.67);1 row insertedSQL> select * from tt; A------- 123 24 123 24 看到上面的了吗oracle直接自动取值四舍五入 我问的问题是:oracle默认会把数值四舍五入!我要怎样不让他四舍五入,而是都直接切断?并且,不用TRUNC函数!楼上各位都误解我的问题了! 换句话说,如何让oracle默认的rounding mode不再四舍五入。就像改变DB2默认的mode从直接切断变成四舍五入一样。设置一个值,影响整个数据库所有的行为。呃,,我上面没有描述清楚? 关于一个统计后按照时间排序的SQL 如何利用shell 脚本或者 perl 脚步实现oracle功能如下 oracle 查询语句 自己做Oracle客户端 817客户端不能导入9i的dmp文件?? 装完oracle后,操作系统启动时弹出对话框,JAVA.exe运行错误,怎样解决 可视化的工具创建表,查看和添加表数据,用什么工具? Access的数据导入Oracle问题 我的oracle 监听服务没有启用 oracle 函数里如何根据传递进来的参数声明变量 PL/sql 下执行SQL的问题 oracle存储过程中存取数据问题
--使用round函数:SQL> select round(12.34567,2) from dual;ROUND(12.34567,2)
-----------------
12.35SQL>
SQL> insert into testt values(123.456);
SQL> select * from testt; C1
----------
123.46默认情况下,我插入的值是123.46。如果是DB2,默认状况是直接切断:
db2 => create table testt(c1 number(5,2))
db2 => insert into testt values(123.456)
db2 => select * from testtC1
-------
123.45 1 record(s) selected.但是,我可以update db cfg using decflt_rounding ROUND_HALF_UP,connect reset, connect to db,然后就可以四舍五入了!
db2 => insert into testt values(123.456)
db2 => select * from testtC1
-------
123.45
123.46 2 record(s) selected.Oracle 有没有类似的功能?还是oracle必须insert into testt values(TRUNC(123.456,2))这样的函数才能够改变默认的rounding模式?
如下:SQL> create table tt(a number(6));Table createdSQL> insert into tt values(123.23);1 row insertedSQL> insert into tt values(24);1 row insertedSQL> insert into tt values(123.2356);1 row insertedSQL> select * from tt; A
-------
123
24
123
SQL> insert into tt values(23.67);1 row insertedSQL> select * from tt; A
-------
123
24
123
24
楼上各位都误解我的问题了!