在varchar2与clob之间进行类型转换
这两种类型之间的转换基本思想都是通过临时列来过渡,相对规范的步骤:
1.将需要转的列改变成一个其它的名称;
2.创建一个大字段列,名称与varchar2字段的原名称相同;
3.直接将varchar2字段赋值给clob字段列;
4.将原来的varchar2字段列删除;
标准varchar2到clob转换步骤
alter table tableName rename column列名称 to temp;
alter table tableName add列名称 clob;
updatetableName
set 列名称=temp;
alter table tableName delete temp;
标准clob到varchar2转换步骤
alter table tableName rename column列名称 to temp;
alter table tableName add列名称 varchar2(4000);
updatetableName
set 列名称=substr(temp,1,4000);
alter table tableName delete temp;
如果存在索引则需要重建:
ALTERINDEX 索引名 REBUILD
有些些人说varchar2到clob与需要通过long字段过渡,但似乎在10中没有这样的要求,可能在9中是需要的 首先给原来varchar2类型的字段result改名为result1. alter table OpContent rename column result to result1; 增加字段类型为long的字段result 给新增的result赋值为result1. 修改result的类型从long为clob。 总结,从varchar2转变为clob。需要用long字段进行过度。
ALTER TABLE 输出 如果要改变表的属性,你必须是表的所有者. 注意 在目前的实现里,只有 FOREIGN KEY 约束可以增加到表中.要创建或者删除一个唯一约束,可以创建一个唯一索引(参阅 CREATE INDEX).要想增加 check (检查)约束,你需要重建和重载该表,用的参数是 CREATE TABLE 命令的其他参数. 用法 兼容性 SQL92ADD COLUMN 形式是兼容的,除了上面说的缺省(值)和约束外。ALTER COLUMN 形式是完全兼容的。 SQL92 对 ALTER TABLE 声明了一些附加的Postgres目前还不直接支持的功能: ALTER TABLE table DROP CONSTRAINT constraint { RESTRICT | CASCADE } 增加或删除表的约束(比如象检查约束,唯一约束或外键约束)。要创建或删除一个唯一约束,对应地创建或删除一个唯一索引,要修改其他类型的约束,你需要重建和重载该表,使用 CREATE TABLE 命令的其他参数. 例如,删除表 distributors 的任何约束: CREATE TABLE temp AS SELECT * FROM distributors; DROP TABLE distributors; CREATE TABLE distributors AS SELECT * FROM temp; DROP TABLE temp; ALTER TABLE table DROP [ COLUMN ] column { RESTRICT | CASCADE } 前,要删除一个现存的列,表必须重新创建和重新装载: CREATE TABLE temp AS SELECT did,city FROM distributors; DROP TABLE distributors; CREATE TABLE distributors ( did DECIMAL(3) DEFAULT 1,name VARCHAR(40) NOT NULL,); INSERT INTO distributors SELECT * FROM temp; DROP TABLE temp; 重命名列/字段和表名是 PostgreSQL 扩展。SQL92 没有提供这些。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |