Oracle 21c Express用expdp导出表空间遇ORA-31655错误求助
ORA-31655 导出表空间失败的排查与解决
出现ORA-31655 No Data Or Metadata Objects Selected For Job错误,核心是数据泵找不到可导出的对象,即便表空间存在,也可能是以下情况导致:
表空间为空:先确认该表空间下是否有实际对象(表、索引等),执行SQL查询:
SELECT owner, segment_name, segment_type FROM dba_segments WHERE tablespace_name = 'BIBLIOTECA';如果返回空结果,说明表空间里没有任何可导出的内容,这就是报错的直接原因。
权限不足:即便用system用户,也可能缺少导出该表空间对象的权限。给system授予
EXP_FULL_DATABASE角色即可:GRANT EXP_FULL_DATABASE TO system;大小写敏感问题:Oracle默认表空间名是大写的,如果创建时用小写且加了双引号,导出时必须用双引号包裹表空间名:
expdp system/password@xe dumpfile=exportfile.dmp tablespaces="biblioteca"可以先查询确认表空间名的实际大小写:
SELECT tablespace_name FROM dba_tablespaces WHERE lower(tablespace_name) = 'biblioteca';容器连接错误:确认当前连接的是CDB还是PDB。如果表空间在CDB$ROOT里,但你默认连的是PDB(比如XE的XEPDB1),就会找不到对象。可以先切换容器再导出:
ALTER SESSION SET CONTAINER=CDB$ROOT;或者导出命令里加上
as sysdba参数,确保连接到CDB:expdp system/password@xe as sysdba dumpfile=exportfile.dmp tablespaces=biblioteca
内容的提问来源于stack exchange,提问作者Lapelusa
相关产品推荐
相关产品推荐

