【问题标题】:Change Double Fields to numeric将双字段更改为数字
【发布时间】:2011-06-22 04:56:10
【问题描述】:

可能重复 Alter every double fields of a table

我需要将表的每个双精度字段更改为数字(15,3)类型,如果类型是双精度,我如何使用迭代给定表的字段的存储过程快速完成这项工作将列更改为数字?

【问题讨论】:

    标签: sql


    【解决方案1】:

    我会考虑写一些改变语句。

    例如

    alter table foo change myfield myfield numeric(30,6);
    

    【讨论】:

      【解决方案2】:

      您可以查询数据字典并生成脚本。最好看一下脚本然后运行它,而不是直接在过程中运行生成的命令。

      例如。在 Oracle 中,要将 say..number(2) 转换为 number(6),您可以使用这样的查询..

      create table test1(
        id number(2),
        name varchar2(50),
        count1 number(2)
      )
      /
      
      select 'Alter Table ' || table_name || 
             ' modify ( ' || COLUMN_NAME || ' NUMBER(6)); '
        from user_tab_cols
        where table_name = 'TEST1'
          and data_type = 'NUMBER'
          and data_precision = 2
          and data_scale = 0
      

      输出:

      Alter Table TEST1 modify ( ID NUMBER(6)); 
      Alter Table TEST1 modify ( COUNT1 NUMBER(6)); 
      

      在运行之前检查...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-24
        • 2011-09-19
        • 2015-11-23
        • 2011-12-27
        • 1970-01-01
        • 1970-01-01
        • 2011-10-15
        相关资源
        最近更新 更多