以前导数据库信息的时候,总是会先开启sql窗口,把自己手写的建表文件复制进去,然后再导入数据信息。
今天突然懒得去找以前的建表文件,而想用SLSQL直接从一个数据库中导出信息,导入到另外一个数据库中,发现自己对PLSQL的导入导出完全不了解。下面详细记录一下。
先写一个正确的方法:
导出步骤:
1 tools ->export user object 选择选项,导出.sql文件
2 tools ->export tables-> OracleExport 选择选项导出.dmp文件
导入步骤:
1 tools->import tables->SQLInserts
2 tools->import talbes->OracleImport然后再导入dmp文件
数据库的导入导出成功
Tools->Export User Objects导出的是建表语句(包括存储结构)
Tools->Export Tables里面包含三种导出方式:
三种方式都能导出表结构以及数据,网上说三种方法有区别,如下:
Oracle Export,Sql Insert,pl/sql developer
第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广
第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob,long),如果有,会提示不能导出(提示如下:
table contains one or more LONG columns cannot export in sqlformat,user Pl/sql developer format instead),可以用第一种和第三种方式导出。
第三种是导出为.pde格式的,.pde为Pl/sql developer自有的文件格式,只能用Pl/sqldeveloper自己导入导出;不能用编辑器查看。
个人比较中意第二种方法,毕竟是SQL文件嘛,自己还可以看,想改也方便
操作选项
一般一些选项选择看字面意思就可以了,重要的上面已经写了(主要includeprivilege只是包含一些建表信息,并不包括存储过程信息,话说我被这个选项骗了……还是忽略它吧……)
选择drop tables信息中会包含删表语句(注意:选了droptables就已经默认选了create tables 和 truncate tables),createtables是建表信息,truncate tables和deletetables都是再再插入数据前先删除原有的信息,这两个是二选一,但是truncate tables效率高很多。
where clause可以输入很多命令,比如rownum <10000只导出每个表的前10000行,等等信息,具体在查信息。