当前位置: 首页 > 面试题库 >

Oracle何时/为什么将NaN添加到数据库表中的行

夹谷奇
2023-03-14
问题内容

我知道NaN代表Not a Number。但是,我很难理解Oracle何时以及为何将其添加到行中。

是当它遇到小于0的值(如负数)时,还是在其为垃圾值时?


问题答案:

从文件:

Oracle数据库数字数据类型存储正,负定点和浮点数,零,无穷大以及作为操作未定义结果的值-“非数字”或NAN

据我所知,您只能在binary_float或binary_double列中获得NaN
。这些数据类型有自己的文字楠太,并有一个is nan条件对他们来说,和nanvl()功能来操纵它们。

获取此类值的一种方法示例是将零浮点数/双精度值除以零:

select 0f/0 from dual;

0F/0
----
NaN

…因此,如果您看到NaN,则您的应用程序逻辑或基础数据可能已损坏。(请注意,您无法使用“普通”数字类型获得此值;ORA-01476: divisor is equal to zero除非分子为浮点数或双精度数,否则您将获得此值)。

但是,您不会获得零或负数的NaN。也可能有一个字符串列,并且应用程序将单词“
NaN”放入其中,但是在许多级别上将数字存储为字符串是个坏主意,因此希望不是这样。



 类似资料:
  • 通过SQL Developer,我向Oracle数据库添加了一个新的存储过程。它不仅列在存储过程列表中(与其他每个SP一起),而且我可以在SQL Developer上轻松地执行它。 问题是我似乎无法从外部应用程序执行它。数据库链接到它,我可以调用所有其他存储过程,但不能调用我刚刚创建的存储过程。我收到的错误消息是: ORA-06550:第1行,第7列:PLS-00201:标识符'SETDATE'必

  • 我是< code>sqlite数据库的新手,在我的项目中,我需要在创建数据库后添加数据。我尝试了这种方式,这是我的代码。 公共类主要活动扩展活动 { } 我创建了另一个类来打开sqlite数据库。 公共类MySqlHelper扩展SQLiteOpenHelper{ 公共字符串getBird(int id){ 它给我异常 帮助我避免这种情况,并在创建数据库后立即插入数据。

  • 我正在Java创建一个航班应用程序,它应该做的事情之一是添加一个新的航班到数据库。我可以添加航班名称没有问题,但我有问题添加航班的座位数到数据库。数据库表被设置为将座席数作为整数值。在我的代码中,将这个值从用户界面添加到数据库的函数将一个值作为整数参数。然后,在添加新航班的实际按钮的事件处理程序代码中,我将值从字符串(这是文本框中接受的字符串)转换为整数,以便将值输入数据库。然而,当我运行我的代码

  • 主要内容:Oracle数据库的版本,甲骨文公司,Oracle的历史Oracle数据库是一个关系数据库管理系统。 它也叫OracleDB或简称Oracle。 Oracle数据库由Oracle公司生产和销售。 Oracle数据库是第一个专为企业网格计算而设计的数据库。 企业网格计算提供了最灵活,最经济的方式来管理信息和应用程序。 Oracle数据库的版本 Oracle数据库主要有四个版本,如下所示 - - 企业版: 它是最强大和最安全的版本。 它提供所有功能,包括卓

  • 问题内容: 我想知道是否有人对我即将从事的工作有任何经验。我有几个csv文件,它们的大小都在一个GB左右,我需要将它们加载到oracle数据库中。虽然加载后我的大部分工作都是只读的,但我仍需要不时加载更新。基本上,我只需要一个很好的工具即可一次将多行数据加载到数据库中。 到目前为止,这是我发现的内容: 我可以使用SQL Loader来完成很多工作 我可以使用批量插入命令 某种批量插入。 以某种方式

  • 问题内容: 首次启动应用程序后,我需要向SQLite数据库添加初始值。我该怎么办? 问题答案: 在DBAdapter.java类文件中,您可以执行此操作。 喜欢这种类型。