zoukankan      html  css  js  c++  java
  • 修改oracle某张表的ID类型varchar2为number,并保留原有数据(因为可能其他表与该表ID关联)

    今天开始迁移一个模块,于是先整理数据库中的表。

    整理的过程中发现需要迁移的表的主键ID是varchar2类型的(使用的Oracle 10g),不符合新系统的规范,需要修改成number(6,0)。同时有不少表的ID被其他表设了关联外键,所以ID的值不能改变(否则可以直接置空,然后修改类型,最后随便赋值)。那么赋值的过程则显得重要了。

    我采用了以下步骤完成上述工作:

    ①   将其他表的关联去掉(如果不去掉,则无法置ID为null,或者删除数据)

    ②   使用PL/SQL,选择该表,右击“查询数据”,如图

     

    ③   数据显示出来后,点击右侧的红色圆圈,展示全部数据;点击列表左上角可以选中所有数据,

     

    ④   在黑色出右击,选择“导出结果--CSV文件”,实际上这个时候导出的就是Excel文件

     

    ⑤   删除所有数据

    ⑥   修改主键ID类型(具体就不说了)

    将主键删除,

    设置ID允许为空

    将所有的数据删除(或者将所有的ID设为null,否则无法修改ID类型)

    修改ID类型为number(6,0)

    ⑦   导入数据,先打开之前导出的csv文件,复制数据,然后再PL/SQL中右击该表,选择“编辑数据”

    ⑧   在列表的左上角右击,选择粘贴

    ⑨   点击列表上方的绿色钩

    ⑩   提交(一定要记得提交)

    ⑪   设置ID不允许为空

    ⑫   设置ID为主键

    ⑬   还原原来设置的外键

    大功告成!

  • 相关阅读:
    werfault进程使用CPU率高
    oracel 拆分字符串
    TCP TIME WAIT
    netstat 命令
    Java 理论与实践: 并发集合类
    DIV与SPAN之间有什么区别
    oracle超出打开游标的最大数的原因和解决方案
    Quartz表达式
    Axis创建webservice客户端和服务端
    Web服务cxf框架发布2
  • 原文地址:https://www.cnblogs.com/javac/p/2598013.html
Copyright © 2011-2022 走看看