Firebird 2.5.2更改blob子类型

Fli*_*Lux 6 firebird firebird2.5

是否可以更改BLOB字段的SUBTYPE?

我有一个带有SUBTYPE BINARY的BLOB需要将它更改为SUBTYPE TEXT,因为我在BLOB和带有SUBTYPE TEXT的BLOB中得到一些奇怪的字符我没有这个问题

Mar*_*eel 9

直接更改blob列的子类型是不可能的(尝试执行此操作将给出错误"无法更改列BLOBCOLUMN的数据类型.BLOB或ARRAY列不支持更改数据类型.")

你需要

  1. 添加一个带有显式字符集的新列(我假设Windows 1252基于您的注释)

    ALTER TABLE table_name
      ADD blobcolumn_new BLOB SUB_TYPE TEXT CHARACTER SET WIN1252
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将数据从旧列复制到新列:

    UPDATE table_name SET blobcolumn_new = blobcolumn
    
    Run Code Online (Sandbox Code Playgroud)
  3. 放下旧栏目

    ALTER TABLE table_name
      DROP blobcolumn
    
    Run Code Online (Sandbox Code Playgroud)
  4. 重命名新列

    ALTER TABLE table_name
      ALTER COLUMN blobcolumn_new TO blobcolumn
    
    Run Code Online (Sandbox Code Playgroud)