使用PL/SQL Developer的导入导出功能比较麻烦,而且在表的字段名使用了关键字后需要手动修改,否则无法导入。现在有一个方法可以在命令行中敲两行命令就可以直接转移数据库。
使用oracle自带的exp 命令可以将源数据库中的各种数据导出保存为一个二进制文件,然后再使用相应的imp命令导入目标数据库。
经常使用的命令为:
将用户username下的所有数据包括表、视图、存储过程、触发器、定时器等导出为二进制文件
exp username/password@database file=E:\bitdata.dmp owner=username
从二进制文件中导入用户username下的所有数据
imp username/password@database2 file=E:\bitdata.dmp fromuser=username log=E:\bitdata.log
将二进制文件中用户username下的所有数据中导入到用户username2下
imp username/password@database2 file=E:\bitdata.dmp fromuser=username touser=username2 log=E:\bitdata.log
这两个命令在unix的terminal和windows的cmd下都可使用,而且可以导入导出整个数据库或者某一张表以及某一张表中筛选出的数据。
注意源数据库和目标数据库的字符集必须一致,否则中文可能会出现乱码。
如果导出时发生错误,卡在cluster definition时,可以先停止数据库,然后再设置环境变量LD_LIBRARY_PATH、LIBPATH为$ORACLE_HOME/lib,其中$ORACLE_HOME为安装oracle时自动产生的环境变量,最后重启数据库
unix下设置环境变量的命令为:
setenv LD_LIBRARY_PATH $ORACLE_HOME/lib
setenv LIBPATH $ORACLE_HOME/lib
使用oracle自带的exp 命令可以将源数据库中的各种数据导出保存为一个二进制文件,然后再使用相应的imp命令导入目标数据库。
经常使用的命令为:
将用户username下的所有数据包括表、视图、存储过程、触发器、定时器等导出为二进制文件
exp username/password@database file=E:\bitdata.dmp owner=username
从二进制文件中导入用户username下的所有数据
imp username/password@database2 file=E:\bitdata.dmp fromuser=username log=E:\bitdata.log
将二进制文件中用户username下的所有数据中导入到用户username2下
imp username/password@database2 file=E:\bitdata.dmp fromuser=username touser=username2 log=E:\bitdata.log
这两个命令在unix的terminal和windows的cmd下都可使用,而且可以导入导出整个数据库或者某一张表以及某一张表中筛选出的数据。
注意源数据库和目标数据库的字符集必须一致,否则中文可能会出现乱码。
如果导出时发生错误,卡在cluster definition时,可以先停止数据库,然后再设置环境变量LD_LIBRARY_PATH、LIBPATH为$ORACLE_HOME/lib,其中$ORACLE_HOME为安装oracle时自动产生的环境变量,最后重启数据库
unix下设置环境变量的命令为:
setenv LD_LIBRARY_PATH $ORACLE_HOME/lib
setenv LIBPATH $ORACLE_HOME/lib