【问题标题】:Interbase Domain Modification跨库域修改
【发布时间】:2021-01-23 05:25:40
【问题描述】:

在将域定义的大小从 VarChar(6) 更改为 VarChar(10) 时,在 IB(已测试 XE7 和 IB 2017)中遇到问题。最终结果是使用域的字段最终允许比指定大小多 2 个字符(在本例中为 12 个)。

以下是重现的步骤:

  1. 创建一个新的 IB 数据库
  2. 创建 VarChar(6) 类型的域定义
  3. 添加具有以下新字段的新表“TestTable”: TestPK 整数,非空,主键 TestDomainField
  4. 测试进入新表。最多允许 6 个字符(正确)
  5. 将域定义更改为 VarChar(10)
  6. 表中的测试条目。它将允许 12 个字符而不是域上指定的 10 个字符(不正确)

元数据选择也确认了允许的 12 个字符:

SELECT distinct r.RDB$FIELD_NAME AS field_name, f.RDB$FIELD_LENGTH AS 字段长度 FROM RDB$RELATION_FIELDS 左连接 RDB$FIELDS f ON r.RDB$FIELD_SOURCE = f.RDB$FIELD_NAME WHERE r.RDB$RELATION_NAME='TestTable'

【问题讨论】:

    标签: interbase


    【解决方案1】:

    虽然我不确切知道这里发生了什么,但我的预感是某种字符集问题。 IOW,一些字符集允许多字节字符。因此,您可以尝试将字符集添加到您的域定义中,看看是否会有所不同。

    【讨论】:

      猜你喜欢
      • 2014-05-15
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      • 2017-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      相关资源
      最近更新 更多