Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle数据库编号类型字段未存储我输入的值_Oracle_Oracle11g_Plsqldeveloper - Fatal编程技术网

Oracle数据库编号类型字段未存储我输入的值

Oracle数据库编号类型字段未存储我输入的值,oracle,oracle11g,plsqldeveloper,Oracle,Oracle11g,Plsqldeveloper,在oracle中,当我尝试将此值保存到数字类型字段37788024213340160中时,它会转换为3.778802422133402E16 这是不好的,因为它是向上舍入值,我需要它来保持我输入到字段中的精确值 你知道如何阻止这种事情发生吗 如果这有帮助,下面是相关字段(MIN_ID)的确切定义: 这只是一个格式/显示问题: SQL> create table subgrp ( 2 id number not null, 3 name varchar2

在oracle中,当我尝试将此值保存到数字类型字段37788024213340160中时,它会转换为3.778802422133402E16

这是不好的,因为它是向上舍入值,我需要它来保持我输入到字段中的精确值

你知道如何阻止这种事情发生吗

如果这有帮助,下面是相关字段(MIN_ID)的确切定义:


这只是一个格式/显示问题:

  SQL> create table subgrp (
    2    id  number not null,
    3    name   varchar2(128)  not null,
    4    min_id    number
    5  );

  Table created.

  SQL> insert into subgrp values ( 123, 'test', 37788024213340160 );

  1 row created.

  SQL> commit;

  Commit complete.

  SQL> select * from subgrp;

          ID
  ----------
  NAME
  --------------------------------------------------------------------------------
      MIN_ID
  ----------
         123
  test
  3.7788E+16


  SQL> col min_id format 999999999999999999999999999
  SQL> /

          ID
  ----------
  NAME
  --------------------------------------------------------------------------------
                        MIN_ID
  ----------------------------
         123
  test
             37788024213340160


  SQL>

这只是一个格式/显示问题:

  SQL> create table subgrp (
    2    id  number not null,
    3    name   varchar2(128)  not null,
    4    min_id    number
    5  );

  Table created.

  SQL> insert into subgrp values ( 123, 'test', 37788024213340160 );

  1 row created.

  SQL> commit;

  Commit complete.

  SQL> select * from subgrp;

          ID
  ----------
  NAME
  --------------------------------------------------------------------------------
      MIN_ID
  ----------
         123
  test
  3.7788E+16


  SQL> col min_id format 999999999999999999999999999
  SQL> /

          ID
  ----------
  NAME
  --------------------------------------------------------------------------------
                        MIN_ID
  ----------------------------
         123
  test
             37788024213340160


  SQL>

PL/SQL Developer取整并以科学记数法将值显示为15位数字,而不是显示原始的整数,这一问题导致我的Web应用程序也显示了不正确的取整数字

经过一些研究,我决定尝试更改PL/SQLDeveloper首选项中的一个设置,以便显示整个数字。这就成功了,现在当我查询它在PL/SQL和我的Web应用程序中正确显示的值时

为此,我做了以下工作:

Tools -> Preferences -> SQL Window -> (Select this): Number fields to_char

此外,还可以使用to_char()将读取内容包装到列中,这将显示正确的未格式化值

PL/SQL Developer取整并以科学记数法将值显示为15位数字而不是显示原始整数的问题,导致我的Web应用程序也显示了不正确的取整数字

经过一些研究,我决定尝试更改PL/SQLDeveloper首选项中的一个设置,以便显示整个数字。这就成功了,现在当我查询它在PL/SQL和我的Web应用程序中正确显示的值时

为此,我做了以下工作:

Tools -> Preferences -> SQL Window -> (Select this): Number fields to_char

此外,还可以使用to_char()将读取内容包装到列中,这将显示正确的未格式化值

请显示该字段的确切定义。最好是
createtable
语句。我敢打赌,问题在于无论您有什么前端(
SQL*Plus
?)都在使用科学记数法显示数据并进行舍入。你用的是什么前端?如果您使用的是SQL*Plus,请将格式设置为显示希望看到的位数。请显示字段的确切定义。最好是
createtable
语句。我敢打赌,问题在于无论您有什么前端(
SQL*Plus
?)都在使用科学记数法显示数据并进行舍入。你用的是什么前端?如果您使用的是SQL*Plus,请将格式设置为显示希望看到的位数。PL/SQL是一种语言。听起来您好像在说GUI中的设置是问题所在。也许您的GUI是AllAround Automations的PL/SQL开发人员?是的,我的意思是让PL/SQL开发人员。谢谢下面是一个他们讨论这个问题的论坛,供参考:PL/SQL是一种语言。听起来您好像在说GUI中的设置是问题所在。也许您的GUI是AllAround Automations的PL/SQL开发人员?是的,我的意思是让PL/SQL开发人员。谢谢以下是他们讨论这个问题的论坛,供参考: