Oracle怎么给表的特定位置增加字段原来的表:
Table T_Table
(
Name Varchar2(11),
Sex Char(1)
)
要变成
Table T_Table
(
Name Varchar2(11),
Age Number(3),
Sex Char(1)
)的SQL语句?
Table T_Table
(
Name Varchar2(11),
Sex Char(1)
)
要变成
Table T_Table
(
Name Varchar2(11),
Age Number(3),
Sex Char(1)
)的SQL语句?
解决方案 »
- Oracle安装最后Configuration Assistant这一步装不下去了,求救!
- java实现不同数据库之间表与表之间的数据交互
- 过程调用错误
- 请教高手oracle性能如何优化?
- Oracle 树型结构数据问题
- 急,急,急!!! oracle9i数据库瘫了,数据没有备份,如何恢复
- ora0113--通信通道的文件结束!!!此问题是什么原因造成的?
- 用MS SQLSERVER DTS 将数据导入ORACLE中为何先要将表名改为大写?
- 想把某个用户下的所有对象都用声明成公用的同义词(表,视图,过程),有什么简单的办法?
- 8i 中有些字段类型在9i 中不支持了,请问有那些?多谢。
- 请教一条SQL查询语句?
- Oracle sql 查询问题
除非你在企业管理器里操作,或者先把原表删除再建新表字段的顺序在哪里都是无所谓的,使用时可以用select 语句决定它的先后顺序
add Age Number(3);
Table created
SQL> DESC T_TABLE
Name Type Nullable Default Comments
---- ------------ -------- ------- --------
NAME VARCHAR2(11) Y
SEX CHAR(1) Y
AGE NUMBER(3) Y
SQL>
SQL> UPDATE SYS.COL$
2 SET COL# = DECODE(COL#, 2, 3, 2)
3 WHERE obj# = (SELECT OBJECT_ID
4 FROM ALL_Objects
5 WHERE object_name = 'T_TABLE'
6 AND OWNER = 'SYS'
7 AND SUBOBJECT_NAME IS NULL)
8 AND COL# > 1;
2 rows updated
SQL> COMMIT;
Commit completeSQL> ALTER SYSTEM FLUSH SHARED_POOL;
System altered
SQL> DESC T_TABLE;
Name Type Nullable Default Comments
---- ------------ -------- ------- --------
NAME VARCHAR2(11) Y
AGE NUMBER(3) Y
SEX CHAR(1) Y
SQL> select column_name,column_id from user_tab_cols where table_name='T_TABLE';
COLUMN_NAME COLUMN_ID
------------------------------ ----------
NAME 1
SEX 3
AGE 2
如果被交换位置的列有约束(包含非null约束),索引等,那么最好先删除这些东东再换位置。