【问题标题】:MySQl TinyInt(1) equivalent in OracleOracle 中的 MySQl TinyInt(1) 等效项
【发布时间】:2021-03-27 08:35:12
【问题描述】:

什么是 MySQL 的 TinyInt(1) 在 Oracle 中的等价物?我必须在 Oracle 表中为其创建数据类型

【问题讨论】:

  • 对 MySQL 不太了解 - 如果我正确理解文档,tinyint 可以签名或不签名。是否有默认值,所以如果您只是说tinyint 它意味着已签名(或者可能未签名)?否则,没有指定有符号或无符号的tinyint 甚至都不是定义明确的数据类型。所以 - 请澄清(对于我们这些不了解 MySQL 的人,比如我自己)。

标签: mysql oracle types integer


【解决方案1】:

在 Oracle 中,您将使用 NUMBER(1)

【讨论】:

  • 我不了解 MySQL,但如果我没看错的话,tinyint(1) 可以保存一个字节的整数值(有符号或无符号)。如果是这样,123 是一个有效的 tinyint(1) 值,可以存储在 MySQL 中。如果在 Oracle 中他们声明 number(1),他们将无法在 Oracle 中存储相同的值。
【解决方案2】:

你可能想要:number(1, 0)

这使您可以存储-99 之间的整数。

请注意,等同于 MySQL TINYINT(1)。此数据类型可以存储介于-128127(签名时)或0255 之间的值。数据类型定义中的 1 在值范围方面并不重要 - 它只是在某些客户端显示数据时发挥作用(这有点违反直觉,现在计划在未来版本中弃用MySQL)。

【讨论】:

  • 我不了解 MySQL,但如果我没看错的话,tinyint(n) 可以保存一个字节的整数值(有符号或无符号)。如果是这样,123 是一个有效的 tinyint(1) 值,可以存储在 MySQL 中。如果在 Oracle 中他们声明 number(1,0),他们将无法在 Oracle 中存储相同的值。
  • @mathguy:是的,这正是我在答案中指出的。但是,我想 OP 想要的只是存储一位数字。许多 MySQL 用户认为TINYINT(1) 中的数字代表数字精度(就像在大多数其他 SQL 方言中一样)。
  • 这是正确的@GMB 我想在 oracle 中插入 1 或 0 ..
猜你喜欢
  • 1970-01-01
  • 2015-07-11
  • 2012-10-18
  • 2013-08-09
  • 2010-11-13
  • 1970-01-01
  • 2011-07-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多