在oracle中动态添加特定位置的列

时间:2014-02-20 10:28:32

标签: sql oracle oracle10g

如何在oracle的特定位置插入一列而不删除并重新创建表?

考虑我在Oracle中创建的这个初始表

  CUSTOMER_ID ACC_NO ACC_BALANCE 
------------------------------------
         100    200        1000 
         101    150        4000  
         102    350        2000  
         103    450        2500  
         104    550        2200  

现在我想将另一列customer_name作为第二列(posotion)添加到表中。 我想检查相同的数百个表,我正在使用脚本来实现这一点 和passingtable_name作为动态输入。

你可以通过动态解决方案来帮助你吗?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

简短回答 - 无法完成,除非您升级到12c(您可以在该位置之后临时设置列不可见,添加列然后再将其设置为可见)。

答案很长 - 如果你真的,真的需要这样做(而且我从来没有找到任何人需要这样做的正当理由),你可以

  • 使用正确顺序的列创建一个新表T_new
  • 删除旧表T_old
  • 将新表格T_new重命名为T_old