将双字段更改为数字

时间:2011-06-21 20:30:44

标签: sql

  

可能重复   Alter every double fields of a table

我需要将表的每个双精度字段更改为数字(15,3)类型,如何使用遍历给定表的字段并且类型为双精度的存储过程快速完成此任务将列更改为数字?

2 个答案:

答案 0 :(得分:0)

我会考虑写一些改变陈述。

e.g。

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

答案 1 :(得分:0)

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

EG。在Oracle中,要将say..number(2)转换为数字(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)); 

在运行之前进行检讨......