oracle 怎么把一个float型的字段修改成double型,必须要double型的,oracle是支持double型的

是这样的,想请问下,oracle 怎么把一个float型的字段修改成double型,必须要double型的,oracle是支持double型的
最新回答
幽萌之羽

2025-06-21 17:20:13

数字类型的在oracle中其实可以用number型来取代,number类型含盖了所有的数字类型,包括整型,浮点型....
oracle中应该是没有double这种数据类型
新增一个字段:alter table tablename add 字段名 类型
望采纳!
追问
oracle中有double型的,我其他表中有用到,只是其他表中的double型字段是我创建表时建表语中添加的,我不知道怎么样单独加一个double的列
追答
你能把你用到的那个double类型的表建表语句发一下吗,我测试了一下,oracle建表或者增加字段没办法识别double关键字
如啼眼

2025-06-21 12:13:11

Oracle   数值数据类型:




基本类型为 NUMBER(P,S)

P范围1到38

S 范围 -84 到 127


Oracle NUMBER类型能以极大的精度存储数值,具体来讲,精度可达38位。

其底层数据格式类似一种“封包小数“表示。

Oracle NUMBER类型是一种变长格式,长度为0~22字节。

它可以存储小到10e-130、大到(但不包括)10e126的任何数值。这是目前最为常用的数值类型。





以下为与ANSI SQL兼容而使用:


FLOAT(b)浮点数  :映射至NUMBER类型。

REAL单精度浮点数  :映射至NUMBER类型。

DOUBLE PRECISION双精度浮点数  :映射至NUMBER类型。

NUMERIC(p,s):  完全映射至NUMBER(p,s)。如果p未指定,则默认为38.

DECIMAL(p,s)或DEC(p,s)小数 :完全映射至NUMBER(p,s)。如果p为指定,则默认为38.

INTEGER或INT 整数 :完全映射至NUMBER(38)类型。

SMALLINT 小整数:完全映射至NUMBER(38)类型。


SQL> CREATE TABLE TEST_DOUBLE(
  2   ID  INT,
  3   VAL DOUBLE PRECISION
  4  );
表已创建。
SQL>
SQL> INSERT INTO TEST_DOUBLE VALUES(1, 12345.6789);
已创建 1 行。
SQL>
崾莣记‘伱’

2025-06-21 03:03:12

alter table table_name add column_name double;
为一个已存在的表增加字段。
追问
这个语句是执行不了的
追答
alter table table_name add column_name numeric(20,10);
oracle是没有double型的,你可以用numeric(m,n)替代,m是数据长度,n是小数位数,整数位数就是m-n
追问
有double型的  我其他表中就有字段用的double型的
追答
http://www.cnblogs.com/yshb/archive/2012/06/19/2554279.html

你看看这个吧,oracle 的数据类型
没有double,只有BINARY_DOUBLE
你说的有字段用的double,这个double有可能是自己建的自定义类型
聆听初春意

2025-06-21 16:48:53

alter table tablename modify colname double;