只能改大。没有数据可能直接用 alter table table_name modify column datatype;
成都创新互联公司主要从事成都做网站、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务珙县,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
如果有数据,改小的话可以会丢失数据。
根据字段类型决定
alter table 表名 modify 字段名 varchar2(长度); 或
alter table 表名 modify 字段名 number(长度 );
比如:
表:stu(name varchar2(20)) 要将字段name的长度改为10
表中有一条数据:name(中国华西村刀光剑影) 长度超过10,截取的时候必然要丢失数据。
当然 如果表中的数据长度都小于10,则可以用sql语句段来直接搞定。
begin
alter table stu add (name2 varchar2(10)); 增加新字段
update stu set name2=substr(trim(name),1,10); 赋值给新字段
alter table stu drop(name); 删除原字段
alter table stu rename column name2 to name; 将新字段改名end;
1、通过图形界面操作,在左侧依次选择objects-tables,右键单击要修改的表名,选中‘Edit’-column,可以直接修改;
2、使用DDL语句:alter table 表名 modify 字段名(字符类型(长度))
例如:
alter table emp modify ename(varchar2(32))
语句:
alter table tableName rename column oldCName to newCName; -- 修改字段名
alter table tableName modify (cloumnName 数据类型); -- 修改数据类型
例如:
1、创建表:
CREATE TABLE Student(
id varchar2(32) primary key,
name varchar2(8) not null,
age number
);
2、修改字段名:
alter table Student rename column name to StuName;
3、修改数据类型:
alter table Student modify (id varchar2(64));
清醒时做事,糊涂时读书,大怒时睡觉,独处时思考;做一个幸福的人,读书,旅行,努力工作,关心身体和心情,成为最好的自己
1、创建表:
CREATE TABLE Student(
id varchar2(32) primary key,
name varchar2(8) not null,
age number
);
2、修改字段名:
alter table Student rename name to StuName;
3、修改数据类型:
alter table Student modify (id varchar2(64));
Oracle数据库介绍:
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
发现clob类型比较特殊,和其他字段类型不同,不可以从其他字段类型直接转换为clob(blob也一样),可以通过long类型作为中间转换的桥梁,即先将varchar2转换为long,然后再将long转换为clob,即可。
SQL alter table test modify (loc long );
Table altered
SQL alter table test modify (loc clob );
Table altered
2、假设要修改字段有数据,则可以使用以下两种方法;
方法一:
alter table batchintfloadlog rename column resultinfo to resultinfo_temp;
alter table batchintfloadlog add resultinfo clob;
update batchintfloadlog set resultinfo=trim(resultinfo_temp);
alter table batchintfloadlog drop column resultinfo_temp;
方法二:
create table batchintfloadlog_temp as select * from batchintfloadlog where 1=2;
alter table batchintfloadlog_temp modify (resultinfo long);
alter table batchintfloadlog_temp modify (resultinfo clob);
insert into batchintfloadlog_temp select * from batchintfloadlog;
drop table batchintfloadlog;
rename batchintfloadlog_temp to batchintfloadlog;