使用PLSQL执行导出表数据的时候有两种方法
1、使用Oracle命令【imp--exp】【impdp--expdp】
但是如果你的本机没有安装有Oracle数据库,使用的instant client远程连接服务器上的Oracle数据库时候,你没有Oracle数据库带有的exp.exe、imp.exe等扩展文件,所以你运行的时候多半也出现无效sql的错误,例如我用PLSQL导出表数据的时候就发生了类似的错误
2、使用PLSQL dev的导入导出表工具
导出表工具有有三种导出方式
- Oracle导出需要有导出可执行文件、需要下载Oracle数据库,数据库中的可执行文件(太麻烦了,而且Oracle数据库和instant client混合使用可能出现别的错误,如环境混乱啥的)
- SQL插入的方式:但是当你的表里面有BLOB类型的数据的时候,你的表数据估计也无法正常导出。
- PLSQL Devloper 方式导出也可能会出现错误,如ORA-03130 要求提取一下段缓冲区啥的错误,可能是Oracle配置出现问题
以上两种方法均不能正常使用时我们的解决办法
1、找到远程连接数据库的服务器。使用服务器上的Oracle数据库,然后使用exp和imp命令导入导出表数据
2、表备份
select 'creat table ' || table_name || '_beifen as select * from ' || table_name ||';' from user_tables t where t.TABLE_NAME like 'ACT_%'
批量生成要备份表的生成表语句,在这个过程中可能会出现你的表名过长而失败的语句,这些语句需要你自己重新处理下。
然后在生成批量插入语句,将原表的数据插入导新的备份表中,后面不需要这些备份表的时候再做删除。