【问题标题】:Impact on changing the data type from char to varchar2对将数据类型从 char 更改为 varchar2 的影响
【发布时间】:2013-10-15 11:06:35
【问题描述】:

谁能告诉我将列的数据类型从 char 更改为 varchar2 会有什么影响。

因为我面临的问题是当我触发选择查询时,即

select * from table_name where column_name in ('X','Y','Z');

上面的查询只返回几行。最近 column_name 数据类型从 char 更改为 varchar。返回的行是数据类型改变后的行。

【问题讨论】:

  • 这取决于您的数据库系统、数据量、查询类型和您使用的索引类型。

标签: sql varchar varchar2


【解决方案1】:

varchar2 数据类型,当存储在数据库中时,仅使用分配给 它。如果你有一个 varchar2(100) 并在表中放入 50 个字节,它将使用 52 个字节 (前导长度字节)。

char 数据类型,当存储在数据库表中时,总是使用最大长度并且是 空白填充。如果你有 char(100) 并将 50 个字节放入其中,它将消耗 102 字节。

所以在你的情况下,它可能只给出分配给 varchar 的空间中的行,因此我相信只返回几行。

引用自:http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1542606219593

【讨论】:

  • 非常感谢,在oratable.com/char-varchar-difference 也找到了同样的原因。您能否告诉我如何选择所有尝试执行 rpad(value,numberofbytes) 的行,但它仅返回当列的数据类型为 char 时插入的行。
猜你喜欢
  • 1970-01-01
  • 2021-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多