oracle sql数据表示问题(显示1.12455e+10格式)

mwkjh3gx  于 2021-08-01  发布在  Java
关注(0)|答案(3)|浏览(278)

在从oraclesql表插入和查询数据时,我遇到了一些问题。我的表名是table\ u name,它有两个列名(id number,password varchar2)。我做的插入操作很精细,但当我查询数据时,它是“1.14662e+10”这种格式。那么问题是什么呢?

ndasle7k

ndasle7k1#

在sql*plus中,可以设置列的格式以显示列的内容。对于你的情况,你需要这样的东西:

  1. column your_column_name format 9999999999

上面命令中的9数应该是列的最大值的位数。
参见下面的示例( ROWNM 列):

  1. SQL> select * from T;
  2. ROWNM NAME TOTAL COLUMN1
  3. ---------- ---------- ---------- ----------
  4. 1.2346E+17 Tejash ########## test
  5. SQL> column rownm format 999999999999999999
  6. SQL>
  7. SQL> select * from T;
  8. ROWNM NAME TOTAL COLUMN1
  9. ------------------- ---------- ---------- ----------
  10. 123456789123456789 Tejash ########## test
  11. SQL>
展开查看全部
xzv2uavs

xzv2uavs2#

数据被正确存储,这只是客户机程序(这里是sqlplus)显示数据的方式的问题。
如前所述,您可以使用sql
plus格式化命令或使用to\u char函数:

  1. SQL> select x from t;
  2. X
  3. ----------
  4. 1
  5. 1234567890
  6. 1.2346E+19
  7. SQL> select to_char(x) from t;
  8. TO_CHAR(X)
  9. ------------------------------------------------------------------------------------------------------------------------
  10. 1
  11. 1234567890
  12. 12345678901234567890
  13. SQL>
展开查看全部
jhdbpxl9

jhdbpxl93#

如果您有几个大的数字列,并且不想将它们全部设置为 column . 数字有一个默认的显示宽度,超过这个宽度,格式就变成了科学记数法;但你可以改变这一点:

  1. SQL> show numwidth
  2. numwidth 10
  3. SQL> select 12345, 123456789123456789 from dual;
  4. 12345 123456789123456789
  5. ---------- ------------------
  6. 12345 1.2346E+17
  7. SQL> set numwidth 20
  8. SQL> select 12345, 123456789123456789 from dual;
  9. 12345 123456789123456789
  10. -------------------- --------------------
  11. 12345 123456789123456789
  12. SQL>

它会影响所有的数字列,即使是较小的数字,正如你所看到的-所以它的方法更广泛,目标也不如单个的 column 设置,但有时会很有用。
你也可以用 set numformat 更复杂的格式化,比如添加组分隔符。阅读更多关于 set 文档中的选项。

展开查看全部

相关问题