Oracle 修改带数据的字段类型

http://www.cnblogs.com/LDaqiang/articles/1157998.html由于需求变动,现要将一个类型NUMBER(8,2)的字段类型改为 char。
大体思路如下:
      将要更改类型的字段名改名以备份,然后添加一个与要更改类型的字段名同名的字段(原字段已经改名),然后更新数据,最后删除改名备份的字段。

以下操作在 Oracle 10.2.0.1.0 中通过。

1.
/*修改原字段名*/
ALTER TABLE 表名 RENAME COLUMN 字段名 TO 字段名1;

2.

/*添加一个和原字段同名的字段*/
ALTER TABLE 表名 ADD 字段名  VARCHAR2(30);

3.

/*
将原来的数据更新到新字段中
这是要注意,一定要显示进行数据类型转换(不同于MSSQL)
*/
UPDATE 表名 SET 字段名 = CAST(字段名1 AS VARCHAR2(30));
要注意,如果想修改好字段并且不丢失修改以前字段的数据话一定要注意这里

4.

/*删除原来的备份字段*/
ALTER TABLE 表名 DROP COLUMN 字段名1;

PS:

我在作者基础上补上一个注释语句吧

5.

COMMENT ON COLUMN 表名.字段名 IS ‘注释内容‘;

时间: 2025-01-09 08:26:09

Oracle 修改带数据的字段类型的相关文章

Oracle中修改已存在数据的字段类型

原字段类型为varchar2,实际上均为数字,想将字段类型改为number,报错ORA-01439: column to be modified must be empty to change datatype 解决方法: tablename为表名称,colname为要修改的字段名 alter table tablename add tempcolumn varchar2(100);--添加临时字段tempcolumn update tablename set tempcolumn=colnam

Oracle中已有数据的字段类型修改

创建测试表 create table t_person( id varchar2(200) primary key, name varchar2(200), address varchar2(200) ); 向测试表中插入数据 insert into t_person(id,name,address) values(sys_guid(),'zhangsan','beijing'); insert into t_person(id,name,address) values(sys_guid(),'

C#实现Oracle数据库插入clob字段类型数据

public static void InsertWithLob(OracleConnection conn)        {            if (conn!= null && conn.State == ConnectionState.Open)            {                try                {                    string sqlText = "insert into tb_nclob(id,n

MongoDB mongoimport 从csv导入数据指定字段类型

mongoimport:指定字段的类型,防止将数字型的字符串导入成数值类型 mongoimport -d idpad_zl -c trs_action_dzwl_zm --type csv --columnsHaveTypes --fields "_id.string(),netbar_wacode.string(),start_time.string(),imsi.string(),imsi_text.string(),imei.string(),device_longitude.string

oracle中批量生成字段类型的脚本

select ' ALTER TABLE '||table_name || '  MODIFY( '|| column_name || ' DATE );' from USER_TAB_COLUMNS where data_type = 'TIMESTAMP(6)'--把TIMESTAMP(6)类型 修改为 DATE型 来自为知笔记(Wiz)

oracle处理已有数据的字段(主键)类型修改方法

来自本人oracle最新sql回忆性演练1一篇博文http://blog.csdn.net/luozhonghua2014/article/details/45729669 只所以重新发布一次,就是抽取经验,让大家可以找到解决方法 --------处理已有数据的字段类型修改(前4步操作会使表中的约束丢失) --1重命名字段 alter table example rename column id to sid; --2添加id字段 alter table example add id varch

Oracle的CLOB大数据字段类型(转)

一.Oracle中的varchar2类型 我们在Oracle数据库存储的字符数据一般是用VARCHAR2.VARCHAR2既分PL/SQL Data Types中的变量类型,也分Oracle Database中的字段类型,不同场景的最大长度不同. 在Oracle Database中,VARCHAR2 字段类型,最大值为4000:PL/SQL中 VARCHAR2 变量类型,最大字节长度为32767. 当 VARCHAR2 容纳不下我们需要存储的信息时,就出来的Oracle的大数据类型LOB( La

Oracle开发:常用的数据库字段类型[转]

Oracle常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 最大长度2000 bytes VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749 Byte/char,默认情况用的是Byte NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 经过

Oracle常用的数据库字段

Oracle常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 最大长度2000 bytes   VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749 NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes   NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes   DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 经过严格测试,无千虫问题 LONG