桃十爱学习 2024-08-30 18:34 采纳率: 0%
浏览 55

oracle数据库通过impdp导入数据时提示,ORA-31684

oracle数据库通过impdp导入数据时提示,ORA-31684。提示这个用户下的一些视图已经存在,但是我这是新建的用户,下面没有东西。这种问题如何解决。

  • 写回答

1条回答 默认 最新

  • 吃不了席 2024-08-30 18:35
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    ORA-31684错误通常是由于在导入数据时,已经存在同名的视图、表或其他对象导致的。虽然您是在新建的用户下进行操作,但可能是在导入数据之前,该用户下已经有了一些对象。

    要解决这个问题,您可以尝试以下几种方法:

    1. 使用REMAP_SCHEMA参数 :在执行impdp命令时,可以使用REMAP_SCHEMA参数将源模式(即导出数据的模式)映射到目标模式(即新用户的模式)。这样,即使存在同名的对象,也不会发生冲突。例如:
    
    impdp username/password REMAP_SCHEMA=source_schema:target_schema directory=your_directory dumpfile=your_dumpfile.dmp
    
    
    1. 删除已存在的对象 :在导入数据之前,您可以先删除已存在的同名对象。首先查询出已存在的对象,然后逐个删除。例如,如果要删除名为view_name的视图,可以使用以下SQL语句:
    
    DROP VIEW view_name;
    
    
    1. 使用TABLE_EXISTS_ACTIONCOLUMN_NAME_CASING参数 :在执行impdp命令时,可以设置TABLE_EXISTS_ACTION参数为REPLACETRUNCATE,以便在导入数据时覆盖或截断目标表中的数据。同时,设置COLUMN_NAME_CASING参数为UPPERLOWER,以确保列名的大小写与源数据一致。例如:
    
    impdp username/password TABLE_EXISTS_ACTION=REPLACE COLUMN_NAME_CASING=UPPER directory=your_directory dumpfile=your_dumpfile.dmp
    
    

    尝试上述方法之一,应该可以解决您遇到的问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月30日