create table zchw(
c1 char
c2 varchar2(14)
c3 number(12)
);
我想在C3前面插入一列怎么做
ALTER TABLE zchw ADD (c4 number(3) [BEFORE c3]);
老出错呜呜;
c1 char
c2 varchar2(14)
c3 number(12)
);
我想在C3前面插入一列怎么做
ALTER TABLE zchw ADD (c4 number(3) [BEFORE c3]);
老出错呜呜;
create table zchw(
c1 char,
c2 varchar2(14),
c3 number(12)
);alter table zchw add c4 number(3);
alter table zchw add c5 number(12);
update zchw set c5=c3;
alter table zchw drop column c3;
alter table zchw rename column c5 to c3;
ALTER TABLE zchw ADD (c4 number(3));
这样在数据库表中,c4会排在c3前面,然后,用SYSTEM登录sqlplus进行操作:
SQL> select object_id from all_objects where owner='SCOTT' and object_name='zchw';
//【SCOTT是指你的数据库用户名,zchw是指你的数据库表名,all_objects系统表名】
显示结果,例如:
OBJECT_ID
----------
6067然后
SQL> select obj#,col#,name from sys.col$ where obj#=6067;
显示结果,例如:
OBJ# COL# NAME
--------------------
6067 1 c1
6067 2 c2
6067 3 c3
6067 4 c4
然后调整字段的顺序:
SQL> update sys.col$ set COL#=5 where obj#=6067 and NAME='c3';
1 row updated.
SQL> update sys.col$ set col#=3 where obj#=6067 and NAME='c4';
1 row updated.
SQL> update sys.col$ set col#=4 where obj#=6067 and NAME='c3';
1 row updated.
SQL> commit;
完成.
由于数据字典是在数据库启动时加载到SQL中的,所以修改完成之后,还需要重启数据库服务。
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.SQL> startup
ORACLE instance started.
这时,再查看,就会发现修改已经成功。
SQL> desc zchw;
查看一下你的表中的字段吧!【方法二:】
重新创建表,可以重新运行一下正确的sql脚本
create table zchw(
c1 char,
c2 varchar2(14),
c3 number(12),
c4 number(3)
);
比较简便。希望对你有帮助
如果不在乎这句话我就不会写出来,1楼的方法我会所以我不想给分,ALTER TABLE zchw ADD (c4 number(3) [BEFORE c3]);
这句话一直报错所以我很纠结想找人找出问题所在
eygle@SZTYORA> drop table zchw purge;表已删除。eygle@SZTYORA> create table zchw(
2 c1 char,
3 c2 varchar2(14),
4 c3 number(12)
5 );表已创建。eygle@SZTYORA>
eygle@SZTYORA> alter table zchw add c4 number(3);表已更改。eygle@SZTYORA> alter table zchw add c5 number(12);表已更改。eygle@SZTYORA> update zchw set c5=c3;已更新0行。eygle@SZTYORA> alter table zchw drop column c3;表已更改。eygle@SZTYORA> alter table zchw rename column c5 to c3;表已更改。eygle@SZTYORA>
ALTER TABLE zchw ADD (c4 number(3) [BEFORE c3]);这句话我不知道错在哪里。。
我不知道这个写得对不对求证明白了吧,