ORACLE数据库导入导出(包含大字段)
网上查了很多资料,对于初次接触plsql developer的新手来说一脸懵逼,不知道数据哪来,在哪操作可以出现那些界面,现在整理一下,方便以后查阅
导入
因为我的数据库里有一堆BLOB、CLOB、NCLOB等大字段,而且我也没有dba账号/(ㄒoㄒ)/~~没法用navicat的数据泵操作,所以装了个plsql developer工具
查询包含大字段的表
SELECT DISTINCT(\'TABLE \"\'||a.OWNER ||\'\".\"\'||a.TABLE_NAME||\'\"\') FROM sys.all_tab_columns a where a.OWNER = \'SDAPPDB\' and a.TABLE_NAME in (select t.TABLE_NAME from sys.all_tab_columns t where t.OWNER = \'SDAPPDB\' and t.DATA_TYPE in (\'CLOB\',\'BLOB\',\'NCLOB\'))
其中SDAPPDB是用户名,查询结果
将结果导出并保存为osf文件,注意是有表头的
PL/SQL Developer Object Selection File1TABLE \"SDAPPDB\".\"T_WYY_GZT_ECR\"TABLE \"SDAPPDB\".\"SYS_STRU_AUDIT\"TABLE \"SDAPPDB\".\"SYS_QRTZ_JOB_DETAILS\"TABLE \"SDAPPDB\".\"SYS_CAS_SYNC_MESSAGE\"TABLE \"SDAPPDB\".\"ACT_RU_JOB\"TABLE \"SDAPPDB\".\"ACT_HI_PROCINST\"TABLE \"SDAPPDB\".\"T_WYY_TASK\"TABLE \"SDAPPDB\".\"T_WYY_API_RECORD\"TABLE \"SDAPPDB\".\"SYS_REPORT\"TABLE \"SDAPPDB\".\"SYS_QRTZ_CALENDARS\"TABLE \"SDAPPDB\".\"SYS_CAS_APP_RESOURCES\"TABLE \"SDAPPDB\".\"ACT_ID_INFO\"
打开plsql developer工具,选择工具-导出表,在选中区域右键选择“载入对象选择”,即可选中要导出的表
查询空表
oracle数据库还有个很大的弊端,对于没有记录的表无法导出,所以要对空表做些额外的操作
select \'alter table \'||table_name||\' allocate extent;\' from user_tables where num_rows=0 or num_rows is null;
将查询结果导出并执行
执行完毕后,进行正常的导出操作,这里我选的是全部用oracle导出,参数设置如上图所示。
这样dmp文件就成功的导出了。
导入
相比于导出而言,导入就简单的多了。
win+r打开命令窗口
【查了很多资料,只会dba导入】
sys/123是用户名和密码
orcl:oracle实例
fromuser和touser是dmp所导出的用户名和要导入表空间的用户名
输入dba和密码,回车即可完成