数据类型未按预期转换

Datatype not converting as expected

提问人:Goutham mano 提问时间:6/7/2023 最后编辑:MT0Goutham mano 更新时间:6/7/2023 访问量:33

问:

我在 Oracle 中有带有浮点 dataype 的列。数据将如下所示 1546.6, 0.0, 0.0

我尝试使用十进制数据类型来获取类似的数据,但是我得到了没有小数点的整数数据类型值。如何解决这个问题?

SQL 预言机

评论

2赞 Justin Cave 6/7/2023
我不确定我是否确切地理解你在做什么和你看到了什么。你能用一个可重现的测试用例来更新你的问题吗?
1赞 Thorsten Kettner 6/7/2023
您是如何定义该列的? 是一个整数。 是一个整数。 莫。这是因为小数位数(声明中的可选第二个数字)默认为零。演示:dbfiddle.uk/A39YITOQDECIMALDECIMAL(10)DECIMAL(10,2)

答:

0赞 Littlefoot 6/7/2023 #1

我想这只是一个显示问题。

如果创建了数据类型为 pure 的列,则允许使用各种数值,包括具有一个十进制数的值。NUMBER

SQL> create table test (col number);

Table created.

要存储到表中的值:

SQL> insert into test (col)
  2    select 1546.6 from dual union all
  3    select    0.0 from dual;

2 rows created.

这是默认设置:

SQL> select * from test;

       COL
----------
    1546,6
         0

表现可能有所不同;选择您认为合适的任何格式模型,例如

SQL> select to_char(col, '999g999g990d00') formatted_col
  2  from test;

FORMATTED_COL
---------------
       1.546,60
           0,00

SQL>

评论

0赞 astentx 6/7/2023
注意:和数据类型只能指定定点数。对于这些数据类型,小数位数 () 默认为 0NUMERICDECIMALs