Oracle SQL Developer - 将视图从一个数据库复制到另一个数据库时出错

时间:2014-12-03 10:55:26

标签: database oracle view oracle-sqldeveloper

我正在尝试将视图从一个数据库复制到另一个数据库。我正在使用'Quick DDL>导出视图保存到工作表'以生成脚本。在脚本的顶部,我收到消息:

"-- Unable to render VIEW DDL for object <view name> with DBMS_METADATA attempting internal generator."

两个数据库都是相同的,我试图复制的视图存在于两个数据库中,但在其中一个数据库中被忽略了。

当我尝试在第二个数据库上运行脚本时,我收到错误

错误报告:

SQL Error: ORA-00604: error occurred at recursive SQL level 1
ORA-00001: unique constraint (SYS.I_COL1) violated
00604. 00000 -  "error occurred at recursive SQL level %s"
*Cause:    An error occurred while processing a recursive SQL statement
           (a statement applying to internal dictionary tables).
*Action:   If the situation described in the next error on the stack
           can be corrected, do so; otherwise contact Oracle Support.

有谁知道我可能做错了什么?

2 个答案:

答案 0 :(得分:0)

消息

  

- 无法为DBMS_METADATA尝试内部

的对象渲染VIEW DDL

给出了SQL Developer。 这是因为他无法使用dbms_metadata.get_ddl。 如果一切都没有特权,很可能是由于错误的类型(执行dbms_metadata.get_ddl):

 ORA-06502: PL/SQL: numeric or value error
 LPX-00210: expected '<' instead of 'n'
 ORA-06512: at "SYS.UTL_XML", line 0
 ORA-06512: at "SYS.DBMS_METADATA_INT", line 3296
 ORA-06512: at "SYS.DBMS_METADATA_INT", line 4148
 ORA-06512: at "SYS.DBMS_METADATA", line 458
 ORA-06512: at "SYS.DBMS_METADATA", line 615
 ORA-06512: at "SYS.DBMS_METADATA", line 1221
 ORA-06512: at line 1

尝试重新加载XML API:

1. enable restricted database session
2. run:
(from $ORACLE_HOME/rdbms/admin):
catnomet.sql
rmxml.sql
to remove the xml subsystem and after that: catxml
utlcxml.sql
prvtcxml.plb
catmet.sql
to reload it. 

答案 1 :(得分:0)

在我的情况下,问题是因为在视图中有两列具有相同的名称或别名,并且由于COL $表具有唯一索引,其中包含对象编号和列的名称,因此两列是不允许使用相同名称