oracle to_number整数显示小数点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle to_number整数显示小数点相关的知识,希望对你有一定的参考价值。

在oracle中在我去整数值后怎样保留小数点
比如 125
在整数是为125.00 不能用to_char 因为我取值出来需要参与运算的! 急!!!!

1、选中第一行数据,如C1。

2、点击上方任务栏中的“开始”。


3、数字已经由“回0.74”自动变成了“1”。

4、往下拉,其它数字也会自动变为整数。完成。

注意事项:


从参与复制的节点间的关系分类

主从复制

复制中只允许从源数据库(即主数据库)向其他数据库(从数据库)复制对象,复制对象存放在从数据库站点中。主从复制是最基本的一种结构。

在这种结构中,定义一个主节点,其源数据称为主节点数据(或主拷贝) ;定义1到n个复制节点,其从主节点复制过来的数据称为复制点数据(或副拷贝) 。数据更新操作只能在主拷贝上进行,然后复制给其它副拷贝。

参考技术A

可以先进行计算,在最后的结果上to_char() 格式化。

或者使用CAST()select cast('125' as number(8,2)) nu from dual。

其中char是待转换的字符串,fmt指定待转换字符串的匹配规则,nlsparam参数用于指定所用语言种类等。char的形式可为任何支持格式的字符串,如money型的字符串:$120,111.0023,23,000,000等。

扩展资料:

奇偶数:

整数中,能够被2整除的数,叫做偶数。不能被2整除的数则叫做奇数。即当n是整数时,偶数可表示为2n(n 为整数);奇数则可表示为2n+1(或2n-1)。

偶数包括正偶数(亦称双数)、负偶数和0。所有整数不是奇数,就是偶数。

在十进制里,我们可用看个位数的方式判断该数是奇数还是偶数:个位为1,3,5,7,9的数为奇数;个位为0,2,4,6,8的数为偶数。

参考资料来源:百度百科-to_number()函数

参考技术B 你可以先进行计算,在最后的结果上to_char() 格式化。
或者 使用CAST()
select cast('125' as number(8,2)) nu from dual;本回答被提问者采纳

不能求和(TO_NUMBER(varchar2 字段)):ORA 01722 [ORACLE]

【中文标题】不能求和(TO_NUMBER(varchar2 字段)):ORA 01722 [ORACLE]【英文标题】:Cannot SUM(TO_NUMBER(varchar2 field)) :ORA 01722 [ORACLE] 【发布时间】:2016-05-27 08:42:33 【问题描述】:

我有 myfield 作为 varchar2 类型,我尝试使用 sum(to_number(myfield)) 对这个字段求和,但结果是 ORA-01722 无效数字。

在发生此错误之前,我使用了 SUM(TO_NUMBER(REGEXP_REPLACE(BIKOU,'[[:alpha:]]', ''))),它可以工作,但上周我在 myfield 中输入了一些十进制值,因此此代码不再工作。

这是我在 myfield 中的数据示例 10,12,13.5,NULL

【问题讨论】:

为什么需要那个 regexp_replace?这意味着“X1X2X3X4XX”将是 1234,你真的想要这个吗? nls_numeric_characters 设置为什么? 从不varchar列中存储数字。改为修复您的表格设计。 我只想将存储为 varchar2 的数值相加 关键是,如果您为您的列使用了正确的数据类型,您一开始就不需要使用这样的技巧。不过,您需要清楚数值的含义;正如 Aleksej 所说,您的代码会将混合字符串中的任何数字视为数字,这可能不是您想要的; '13.5' 对你来说算数吗?那么“13,5”或“1,000.5”或“1.000,5”呢? 【参考方案1】:

如果您从 13.5 之类的字符串中收到该错误,那么您会话的 NLS_NUMERIC_CHARACTERS 似乎设置为使用逗号作为小数分隔符:

alter session set nls_numeric_characters=',.';

with your_table (bikou) as (
  select '10' from dual
  union all select '12' from dual
  union all select '13.5' from dual
  union all select null from dual
)
select SUM(TO_NUMBER(REGEXP_REPLACE(BIKOU,'[[:alpha:]]', '')))
from your_table;

SQL Error: ORA-01722: invalid number

您可以将会话显式设置为使用句点作为小数分隔符,或者提供使用句点的格式掩码:

select SUM(TO_NUMBER(REGEXP_REPLACE(BIKOU,'[[:alpha:]]', ''), '99999999.99999'))
from your_table;

SUM(TO_NUMBER(REGEXP_REPLACE(BIKOU,'[[:
---------------------------------------
                                   35,5

或者在模型中使用小数点分隔符并覆盖会话的 NLS 设置:

select SUM(TO_NUMBER(REGEXP_REPLACE(BIKOU,'[[:alpha:]]', ''),
  '99999999D99999', 'nls_numeric_characters=''.,'''))
from your_table;

SUM(TO_NUMBER(REGEXP_REPLACE(BIKOU,'[[:
---------------------------------------
                                   35,5

掩码显然必须适合您期望从正则表达式返回的所有值;我使用的可能不太适合您的数据。

这种问题就是为什么您不应该将数字或日期存储为字符串。为您的列使用正确的数据类型。

【讨论】:

以上是关于oracle to_number整数显示小数点的主要内容,如果未能解决你的问题,请参考以下文章

需要在oracle中显示十进制值

不能求和(TO_NUMBER(varchar2 字段)):ORA 01722 [ORACLE]

Oracle 11.2 to_number 多个逗号

sql Oracle TO_NUMBER函数

请问各位大侠:oracle的存储过程返回值如果有0.2等这类小数时,为何前面的0会不显示,如何解决

Oracle中to_number函数格式参数问题