今日在公司使用 Oracle数据库导入dmp 文件,生成数据库表了之后,查看当前用户下的表确认都生成成功了,之后我在执行 *.sql 文件插入数据时 ,显示要插入的表不存在 。 排查发现生成的表名前都加了用户名的前缀 ,eg: system.user 。 使用以下步骤成功排错。
使用dba用户system登录Oracle ,执行以下命令 ,删除指定用户下 以及该用户下的所有表数据
drop user isc22 cascade
创建一个新的用户
create user isc22 identified by isc22
授权
grant dba,connect, resource to isc22
Oracle创建directory
create or replace directory data_pump_dir as 'D:\dump\dir
在外部命令(cmd/linux)界面下运行
impdp isc22/isc22@127.0.0.1:1521/orcl directory=data_pump_dir dumpfile=ISC22_CLEAR_DATA.DMP logfile=iscimpdp.log //特定内容自行修改
导入sql文件的时候,需要切换到新创建的用户下,并且不能是以dba方式登录。 经过一番折腾,这个问题顺利解决了。 笔者用的这种方法比较直接,全部重新再来,读者要是有更好的方法,也请方便告知一下。