存储过程的的权限设置不对。你的存储过程调用用动态sql,执行DDL语句时,应该以current_user权限编译存储过程,即在
create or replace procedure backTable(tableNameback in  out varchar2)
AUTHID CURRENT_USER -- 调用者权限
is
....编译通过是因为动态sql是在执行存储过程时检查权限...