oracle导入导出单个表的办法

原创 2013年12月02日 13:34:31

1.首先是导出几张表的数据、结构;可以用plsql工具,也可以用命令。

plsql工具:


命令:

导出数据库:
操作:运行:cmd 然后输入:
exp lw/lw@ORCL file=d:\lw.dmp tables=(tablename1,tablename1) owner=(lw);

2.导入数据库
操作:运行:cmd 然后输入:根据主外键顺序来导入数据,不然是导入不全的。
imp username/password@本地net服务名 file=xxx.dmp fromuser=energy touser=energy1 tables=(tablename)  ignore=y;

ignore=y加上这个有表的情况下忽略,也就是出现相同记录的忽略,没有记录的插入。这样问题又来了相同记录需要更新怎么办?


3.更新数据库:

A.在本地建立一个用户test,记住表空间名称需要一样的。

imp username/password@本地net服务名 file=xxx.dmp fromuser=energy touser=test full=y;

直接全部导入数据库

B.在真正需要导入数据库里建立几个临时表,可以根据表结构sql来创建,只保留主键就行了,外键不用。

然后把用户test的表查询的数据全部复制,粘贴到临时表里:

写一个存储过程:

create or replace procedure CHECK_DATA
is
 type sp_test1_cursor is ref cursor;
         cur_m_energy sp_test1_cursor;
        ENERGYNO_TEMP M_ENERGY_TEMP.ENERGYNO%type;
    begin
     open cur_m_energy for  select
    ENERGYNO
    from M_ENERGY_TEMP ;
      Loop
        fetch cur_m_energy
          into ENERGYNO_TEMP;
        exit when cur_m_energy%NOTFOUND;
      
          update TEST1 a
             set a.ENERGYNAME = (select ENERGYNAME from M_ENERGY_TEMP t where t.energyno=ENERGYNO_TEMP ),
             a.ENERGYUNIT=(select ENERGYUNIT from M_ENERGY_TEMP t where t.energyno=ENERGYNO_TEMP ),
             a.ENERGYTYPE=(select ENERGYTYPE from M_ENERGY_TEMP t where t.energyno=ENERGYNO_TEMP ),
             a.REMARK=(select REMARK from M_ENERGY_TEMP t where t.energyno=ENERGYNO_TEMP ),
             a.STATUS=(select STATUS from M_ENERGY_TEMP t where t.energyno=ENERGYNO_TEMP ),
             a.SORTNO=(select SORTNO from M_ENERGY_TEMP t where t.energyno=ENERGYNO_TEMP )
           where a.ENERGYNO = ENERGYNO_TEMP;
          commit;
      end loop;
    close cur_m_energy;

end CHECK_DATA;


sql窗口执行就可以了:call  CHECK_DATA();



cmd窗口也可以:

sqlplus

输入账号,密码 执行存储过程

exec CHECK_DATA();




相关文章推荐

Oracle导出表(即DMP文件)的两种方法

方法一:利用PL/SQL Developer工具导出: 菜单栏---->Tools---->Export Tables,如下图,设置相关参数即可: 方法二:利用cm...
  • lanpy88
  • lanpy88
  • 2012年05月18日 16:17
  • 348243

Oracle导出导入指定表

从源数据库导出:exp user1/pwd@server1 file=c:\temp\exp.dmp tables=(table1, table2)导入到目标数据库:imp user2/pwd@ser...

oracle中导出导入表以及数据

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。利用...
  • jimmy609
  • jimmy609
  • 2012年07月31日 11:27
  • 51206

Oracle学习——dmp文件(表)导入与导出

前言       关于dmp我们用的还是比较多的,dmp文件它是作为oracle导入和导出表使用的文件格式,今天就将dmp文件导出和导入进行学习。   dmp文件导出       dmp文件导出用的比...

oracle中把表导出为txt文件方法

本篇列举了几种把oracle 表中的数据导出成txt文件的方法,目前只列举了三种方式,如果后续发现更好的方法会持续添加进来。   1.plsqldev 里面有一个选项可以把表以execl格式到时   ...

oracle导入导出表及表结构

sqlplus 进入数据库中 导出 直接在命令行下写命令 1.导出自己的表   exp userid=scott/tiger@myoral tables=(emp,dept) file=/opt/e1...

Oracle导入单张表

利用cmd   cmd 命令 imp gengbao/gengbao@orcl file=dd.cmp tables=(table1,table2)

Oracle中用Exp命令导出指定用户下的部分表或数据

没事儿唠唠IT 2016-12-04 00:02 导读:Oracle中,除Exp命令可进行一般的全库、全用户导出外,还可通过增加相关参数条件实现对部分库表或数据的导出。 测试环境 ...

用oracle中的exp与imp进行几个表数据的导出与导入

这两天要进行数据的导入导出,也学习了一下在linux下使用oracle的exp与imp命令。一、先说exp:这是用于导出数据用的命令,本次主要用它来把几个表的数据导出来。命令如下:exp oracle...

oracle导出某个表的表结构

和大家分享下用这个脚本,可以导出表结构到./TAB248_20091217.sql 文件中set colsep '' set trimspool on set long 90000set linesi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle导入导出单个表的办法
举报原因:
原因补充:

(最多只允许输入30个字)