取oracle一个表的所有字段名 按要求修改 删掉 并重新按要求新建字段

来源:百度知道 编辑:UC知道 时间:2024/05/19 19:09:37
是这样的 有一个表的字段是按照另一个表来设计 和新建的(其中一些不能删 这些字段名我知道). 更新的时候 我需要找到所有的字段名 然后删掉他们 然后再按照新的字段列表新建

回答完毕 另加分 谢谢
我发现我提的问题挺绕口的....连我自己都感觉歧义了
是这样的 这些字段 名称 长度 类型 等等属性都在另一个表里有描述 就是一个记录对应一个字段,这个表的记录会新建 删除 修改.
根据以上这个表会有另一个表根据这些记录描述的字段建表,我这里为了省心,只要有更改,就统统干掉旧表的字段,然后根据新的描述新建它们.
同样 删除它们的时候并不是所有的都删除 有一些字段是内建的不用动的,已经初始化过的.
就这样....呵呵. 谢谢 大家很热心有爱心啊....刚学oracle 对这些真的不熟悉

//////////////////////////////////////////////////////////////////////////
谢谢大家 东西已经做完了 就是drop ALTER什么的 最笨的方法

我去研究一下高手说的存储过程 感谢大家

desc TableName--//查看字段
create table New as select * from Old;--//将Old表备份到New
Alter Table Old drop COLUMN 字段名;--//删除字段
Alber TABLE Old add 字段名 varchar2(100);--//新增字段
ALTER TABLE Old RENAME COLUMN old_name to new_name--//如果由于约束不能删除字段的话,就给他改名.

祝你好运!

不知道你的需求是什么
能不能建立一个触发器。在更新的时候自动删除掉那些受影响的字段?不过前提是你要知道哪些字段是要删除的.

你这个要求蛮复杂的,建议使用存储过程来实现,因为一旦存储字段信息的表有改动,就必须重建表,这需要使用动态建表

在sqlserver里, 有syscolumns系统表,可以罗列出某表的全部字段, 如
select name from syscolumns where id in (select id from sysobjects where name = 'tablename')
我想在oracle里也应该有类似的系统表吧。