朋友刚开始学习ORACLE 做练习的时候
以SYS用户创建了一个表 并插入了数据
之后想要修改表结构 删除其中一列 结果提示
无法删除属于 SYS 的表中的列...[@more@]
这个问题我也做了如下实验
---------------------------------------------
C:>sqlplus / as sysdba
SQL*Plus: Release 10.1.0.2.0 - Producti
Copyright (c) 1982, 2004, Oracle. All
连接到:
Oracle Database 10g Enterprise Edition
With the Partitioning, OLAP and Data Mi
SQL> create table abc (a int,b int);
表已创建。
SQL> insert into abc values(1,10);
已创建 1 行。
SQL> commit
2 ;
提交完成。
SQL> select * from abc;
A B
---------- ----------
1 10
SQL> alter table abc drop column a;
alter table abc drop column a
*
第 1 行出现错误:
ORA-12988: 无法删除属于 SYS 的表中的列
-------------------------------------------------------------
测试1:system用户登入 删除sys用户创建的列 仍然无法删除
测试2:将该列设为空 仍然无法删除
后来看了些前辈的文章才知道 以sys用户创建的表无法修改该表的结构……
--===总结: 操作系统认证以SYS登陆后创建的表 即sys.table 无法修改表结构 无论该列是否为空