有时,我们本地没有安装Oracle,但却需要将服务器上的Oracle数据以dmp格式导出,网上大部分都说使用exp命令,但其实这种方式时没有用的,因为exp命令执行的是exp.exe文件,而这个文件只有在Oracle安装目录的bin文件夹下才会存在。
其实PL/SQL也能以dmp格式导出表数据,下面介绍这种方式
首先,需要下载plsql和Oracle客户端,我这里给出64位PL/SQL 11和Oracle 11.2客户端的下载链接:
plsqldeveloper11_64位(附注册码)+instantclient_11_2
这里需要注意一下,PL/SQL的版本和Oracle客户端的大版本必须相同,也就是说,必须都为11或12。
下载好上述文件后,安装好PL/SQL,然后将Oracle客户端放到任意位置,例如F:/instantclient_11_2,
1、进入F:/instantclient_11_2/ADMIN文件夹,修改tnsnames.ora中的内容
testdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = testdb)
)
)
第一个testdb为数据库的别名(可随意取),第二个testdb为数据库的服务名,HOST为数据库所在ip,PORT为数据库的端口
2、设置环境变量
①TNS_ADMIN:设置变量名为TNS_ADMIN,变量值为1中tnsnames.ora所在目录,配置之后,PL/SQL才能根据TNS_ADMIN找到配置好的数据库。
②LS_LANG:配置客户端语言,设置变量名为LS_LANG,变量值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK
3、配置PL/SQL
双击PL/SQL图标,这时会提示登录,直接关闭登录窗口,进入未登录情况下的PL/SQL主界面
点击tools-->Preferences,进入PL/SQL配置界面
如图所示,找到如上位置
①Oracle Home:此处填写Oracle客户端根目录,即F:/instantclient_11_2
②OCI library:此处填写Oracle客户端根目录/oci.dll,即F:/instantclient_11_2/oci.dll
3、重新启动PL/SQL,此时PL/SQL的登录界面的“Database”下拉框将可以选择数据库,此时即可成功连接远程数据库
4、点击tools-->Export Tables进入表数据导出界面,然后选择PL/SQL Developer方式导出(本地没有安装Oracle的情况下是没办法使用Oracle Export方式导出的(需要exp.exe,而exp.exe是在Oracle服务端的bin目录中的))
点击“Output file”右侧输入框中的文件夹图标,如下图,选择保存类型为dmp
数据即可成功导出