【发布时间】:2011-06-22 04:56:10
【问题描述】:
我需要将表的每个双精度字段更改为数字(15,3)类型,如果类型是双精度,我如何使用迭代给定表的字段的存储过程快速完成这项工作将列更改为数字?
【问题讨论】:
标签: sql
我需要将表的每个双精度字段更改为数字(15,3)类型,如果类型是双精度,我如何使用迭代给定表的字段的存储过程快速完成这项工作将列更改为数字?
【问题讨论】:
标签: sql
我会考虑写一些改变语句。
例如
alter table foo change myfield myfield numeric(30,6);
【讨论】:
您可以查询数据字典并生成脚本。最好看一下脚本然后运行它,而不是直接在过程中运行生成的命令。
例如。在 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));
在运行之前检查...
【讨论】: