Oracle将列类型从DATE更改为VARCHCAR2

时间:2018-10-29 10:43:39

标签: oracle

我有一个名称为DATA_STR的列,并键入DATE。我需要将列类型更改为VARCHAR2(50)。我该怎么办?

2 个答案:

答案 0 :(得分:1)

尽管不建议这样做,但是您可以按照以下步骤操作

  1. 添加新的(临时)列DATA_STR_VAR

  2. 使用带有to_char的旧列进行更新,例如:

    update tableName set DATA_STR_VAR=to_char(DATA_STR, 'DD-MON-YYYY HH24:MI')
    
  3. 删除列DATA_STR

  4. DATA_STR_VAR重命名为DATA_STR

答案 1 :(得分:1)

它已经写过,但是我重复一遍:不要这样做!

但是您是否可以考虑像这样使用虚拟列:

ALTER TABLE my_table ADD DATE_CHAR GENERATED ALWAYS AS (TO_CHAR(DATA_STR, 'YYYY-MM-DD HH24:MI:SS') VIRTUAL);