在 Teradata 中,当执行 ALTER TABLE 命令将现有列的数据类型从 VARCHAR(10) 修改为 CHAR(10) 时,我收到 3558 错误,指示无法更改指定的属性。是否有替代方法对此进行编码以实现预期目标,或者是否需要删除并重新创建该列以更改数据类型?
最佳答案
当内部存储发生变化时,您无法修改数据类型,VARCHAR <-> CHAR 就是这种情况。
与其ADD CHAR -> UPDATE CHAR from VARCHAR(需要大量的 transient 日志)-> DROP VARCHAR,不如创建一个新表-> INSERT/SELECT(无TJ)-> 删除/重命名。
编辑:正如 Rob Paller 所建议的,使用 MERGE INTO 而不是 INSERT SELECT 将避免假脱机处理源表。
关于用于将现有列数据类型从 varchar 修改为具有相同长度的 char 的 Teradata Alter Table 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18242741/