我用Google搜索了足够的东西,但出于某种原因,我的工作不起作用。
列名称为 CD 。 type是 VARCHAR2(10Byte)
表名为 TB_POT_ECD_CD
我想将列的大小更改为 VARCHAR2(100Byte)
ALTER TABLE TB_POT_ECD_CD MODIFY(CD VARCHAR2(100))
没用。任何人都可以看一下吗?
答案 0 :(得分:0)
正如您在问题评论中所说,ORA-00942
ALTER TABLE
查询ALTER SYSTEM FLUSH SHARED_POOL;
。我能想到的解决方案很少:
ALTER TABLE
然后再次MODIFY
再次{{1}} 答案 1 :(得分:0)
完全可以修改包含数据的列,包括更改其大小;唯一的例外是我们不能使列小于列(1)中存在的最大值。
这是语法......
alter table TB_POT_ECD_CD modify cd varchar2(100 byte)
/
......这里也是SQL fiddle。
(1) 11gR2和早期版本都是如此;在旧版本的Oracle中,我们只能收缩空列。感谢@StanMcgeek指出这一点。
“我得到ORA-00942。表或视图不存在。”
这是您的SQL的问题。可能你拼错了表,或者你试图从错误的架构运行查询。
答案 2 :(得分:-3)
您可以remove
该列,add
再次使用新尺寸
ALTER TABLE TB_POT_ECD_CD
DROP COLUMN CD
ALTER TABLE TB_POT_ECD_CD
ADD CD VARCHAR2(100)