我正在尝试将视图从一个数据库复制到另一个数据库。我正在使用'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.
有谁知道我可能做错了什么?
答案 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 $表具有唯一索引,其中包含对象编号和列的名称,因此两列是不允许使用相同名称