oracle修改列的类型

1、假设字段数据为空,则不管改为什么字段类型,可以直接执行:

alter table tb modify (name nvarchar2(20));

2、假设字段有数据,则改为nvarchar2(20)可以直接执行:

alter table tb modify (name nvarchar2(20));

3、假设字段有数据,则改为varchar2(40)执行时会弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”,这时要用下面方法来解决这个问题:

/*修改原字段名name为name_tmp*/

alter table tb rename column name to name_tmp;

/*增加一个和原字段名同名的字段name*/

alter table tb add name varchar2(40);

/*将原字段name_tmp数据更新到增加的字段name*/

update tb set name=trim(name_tmp);

/*更新完,删除原字段name_tmp*/

alter table tb drop column name_tmp;

总结:

1、当字段没有数据或者要修改的新类型和原类型兼容时,可以直接modify修改。

2、当字段有数据并用要修改的新类型和原类型不兼容时,要间接新建字段来转移。

时间: 2024-11-05 12:20:43

oracle修改列的类型的相关文章

SQL 添加列,删除列,修改列的类型

alter table 表名 add 列名 数据类型 如:alter table student add nickname char(20) alter table tableName(表名) add columnName(列名) varchar(30) 修改列的类型 alter table tbname --表名alter column colname --列名  NvarChar(50) --数据类型  not null alter table S_PART_NO alter column

Oracle修改原有字段类型

如果: 对表字段类型,进行修改. 例如 表名为A,字段为 A_NAME 字段兼容的情况就可以直接进行修改!在此说一下不兼容情况,会有一个错误提示为:ORA-01439:要更改数据类型,则要修改的列必须为空 1 我的场景是将Varchar2转为CLOB, 下面为实现过程 2 3 //将A_NAME改名为A_NAME1 4 ALTER TABLE A RENAME COLUMN A_NAMETO A_NAME1; 5 6 //添加新字段 A_NAME 7 ALTER TABLE A ADD A_NA

Oracle修改列

Oracle中修改表列名,用SQL语句的方式 对字段操作 操作方法 更新字段名 alter table TABLE_NAME rename column column_old to column_new; 添加字段 alter table TABLE_NAME add COLUMN_NAME varchar(10); 删除字段 alter table TABLE_NAME drop column COLUMN_NAME; 添加字段并附值 alter table TABLE_NAME ADD CO

mysql 修改列

MySQL修改一列,只修改列的类型,比如原来是decimal(11,2),改为int(11),可以这样写 ALTER TABLE tablename MODIFY COLUMN columnname int(11) DEFAULT 0 COMMENT '注释'; 注意,虽然只是要修改列类型,但是default,comment不能省.否则,修改后,类型改了,default和comment都丢失.这个地方得小心,不然默认值和注释在修改后无法保留了. 如果要修改列名,可以使用关键字CHANGE ALT

sql添加列,删除列,修改列

有时候,当数据库里面有数据了,再到设计器里面删除列,就删不掉.只能用代码删除. alter table tableName drop column columnName 添加列 alter table tableName add columnName varchar(30) 修改列 --修改列的类型alter table tableName alter column columnName varchar(4000) --修改列的名称EXEC  sp_rename   'tableName.col

ORACLE修改列名与列类型

--修改列名 alter table 表名 rename column 旧列名 to 新列名; --修改列类型 alter table 表名 modify (列名varchar(255)); 删除表的一列: alter table 表名 drop column 列名 给表增加一列: alter table 表名 add 列名 类型 default 值 < not null>; 案列: ALTER TABLE TABLE_ABC ADD COLUMN_AAA NUMBER DEFAULT 100

Oracle修改字段类型和长度

Oracle修改字段名 alter table 表名 rename column 旧字段名 to 新字段名 Oracle修改字段类型和长度 alter table 表名 modify 字段名 数据类型 如果是修改数据类型比如由varchar2修改为int且字段内有值,会报如下错误 解决方法参考:http://blog.csdn.net/itmyhome1990/article/details/8681206 转载请注明出处:http://blog.csdn.net/itmyhome1990/ar

Oracle 列操作(增加列,修改列,删除列)

1.增加一列: Alter table 表名 add 列名 varchar2(10); 2.修改一列: Alter table 表名 modify 列名 varchar2(20); 3.删除一列: Alter table 表名 drop column 列名; 这里要注意几个地方,首先,增加和修改列是不需要加关键字COLUMN,否则会报错ora-00905. 其次,对删除单列的话,一定要加COLUMN,然后记住,删除是不需要加列类型的. 4.增加多列: Alter table 表名 add (列名

Oracle修改字段类型方法总结

SQL Code 12345678910111213141516171819202122232425   有一个表名为tb,字段段名为name,数据类型nchar(20). 1.假设字段数据为空,则不管改为什么字段类型,可以直接执行:alter table tb modify (name nvarchar2(20)); 2.假设字段有数据,则改为nvarchar2(20)可以直接执行:alter table tb modify (name nvarchar2(20)); 3.假设字段有数据,则改