修改字段类型

[复制链接]
查看11 | 回复6 | 2006-4-17 13:46:34 | 显示全部楼层 |阅读模式
如果字段有数据,不取出数据的前提下有没有办法修改该字段的类型,或者缩小该字段的宽度。
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
不取出数据的前提下有没有办法修改该字段的类型,-----------不行
或者缩小该字段的宽度。---------如果现有数据长度小于目的长度可以
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
谢谢 XIE3000
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
最初由 xie3000 发布
[B]缩小该字段的宽度。---------如果现有数据长度小于目的长度可以 [/B]

好像也不行吧
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
最初由 dragon2002 发布
[B]
好像也不行吧 [/B]

SQL> CREATE TABLE A(A CHAR(10),B VARCHAR(10));
表已创建。
SQL> INSERT INTO A VALUES('A','B');
已创建 1 行。
SQL> SELECT LENGTH(A),LENGTH(B) FROM A;
LENGTH(A)LENGTH(B)
---------- ----------
10
1
SQL> ALTER TABLE A MODIFY A CHAR(2);
ALTER TABLE A MODIFY A CHAR(2)

*
ERROR 位于第 1 行:
ORA-01441: 无法减小列长度, 因为一些值过大
----------------------------------------因为虽然一个‘A’但长度是10即'a _________'9个空格也存进去拉所以不行
SQL> ALTER TABLE A MODIFY B VARCHAR(1);------------这个‘B’就是‘B’长度是1所以行
表已更改。
SQL>
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
xie3000 所说的正确的,只要表中数据长度比目的长度小或等于就可以。
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
在这需要说明的是在oracle8i以上的版本是可以的,在oracle8i是不行必须要列中无数据才行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行