问题标签 [dbms-metadata]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
851 浏览

sql - ORA-00904: "DBMS_METADATA"."GET_DDL": 标识符无效

当我运行 dbms_metadata 时,我得到 ORA-00904: "DBMS_METADATA"."GET_DDL": invalid identifier 错误。

该错误是因为列名或别名错误。我不确定我为什么会得到它。

这是一些显示错误的代码:我创建了一个表:

我插入一行数据:

我尝试为它获取 DDL:

这是错误:

我检查了权限,看来我拥有正确的权限:

我的用户(又名模式)在该列表中。

以下是我相信的文档:https ://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_metada.htm#i1016867

0 投票
0 回答
48 浏览

oracle - 如何配置 dbms_metadata.get_ddl 在索引的每一列之后添加“ASC”?

您好我正在尝试从架构中导出一些索引,并且我正在使用 dbms_metadata.get_ddl

到目前为止,索引是这样导出的

所以索引看起来像这样:

有什么办法可以配置它看起来像这样?

谢谢!

0 投票
1 回答
355 浏览

oracle - 如何在 oracle 中使用 get_ddl 从创建表脚本中忽略创建分段脚本?

我正在研究 java 项目,在该项目中我们get_ddl使用Oracle 12c.

例如,我的表名是PARENT_EMP,架构是SECONDARYUSER,那么我正在使用 get_ddl 方法。

在执行上述语句之前,我正在执行以下脚本以忽略 ddl 中的约束和表空间。

但我的问题是,一些表有 REFERENCE PARTITIONED,如果我使用 get_ddl 方法获得 ddl,那么我也会获得外部约束脚本。

父表 DDl 是:-

子表 DDl 是:

请建议如何在没有外部约束和分区 ddl 的情况下获取子表 ddl ,或者如何使用 alter table 在已创建的表上创建分区。还有什么方法可以使用get_ddl方法来获得分区的 ddl 吗?

0 投票
1 回答
506 浏览

oracle - Oracle 类型 DIRECTORY 的 dbms_metadata.get_ddl:参数 SCHEMA 的输入值无效

当我尝试dbms_metadata.get_ddl('TABLE', 'MYTABLE', 'MYSCHEMA')在 pl/sql 块或包过程中调用时,它工作正常。

当我尝试dbms_metadata.get_ddl('TABLE', 'MYTABLE')在 pl/sql 块或包过程中调用(没有明确提供模式)时,它也可以正常工作。

当我尝试dbms_metadata.get_ddl('DIRECTORY', 'MYDIR')在 pl/sql 块中调用(没有明确提供模式)时,它也可以正常工作。

但,

当我尝试dbms_metadata.get_ddl('DIRECTORY', 'MYDIR', 'MYSCHEMA')在 pl/sql 块或包过程中调用时,它会引发错误:

当我尝试dbms_metadata.get_ddl('DIRECTORY', 'MYDIR')在包过程中调用(没有明确提供架构)时,它会引发错误:

问题是什么?

0 投票
1 回答
136 浏览

python - 使用 python cx_Oracle,我如何调用 DBMS_METADATA.SET_TRANSFORM_PARAM,它有多个声明?

这是我目前收到的电话和错误:

0 投票
2 回答
286 浏览

python - 如何使用 Python 读取 Oracle 存储过程的内容

我正在尝试使用 python 读取存储过程的内容/代码。

我使用 cx_Oracle 函数建立与 oracle 数据库的连接。

这是代码

但是,我正在尝试阅读程序本身的代码。有什么功能可以做到这一点吗?

0 投票
1 回答
93 浏览

sql - 如何以自动化方式保存 Oracle DDL

Oracle SQL Developer 可以通过Tools -> Database Export...导出DDL...这个效果很好,但是需要人工干预。

我知道DBMS_METADATA.get_ddl(),我想做的是将生成的 DDL 保存在我用来使用 Oracle SQL Developer 连接到 Oracle DB 的客户端机器中,这可以手动完成。

但是,我正在寻找一种自动/可编写脚本的方式来导出(保存到本地计算机)DDL,该方式与通过手动方式导出的方式相同。

这是我用来获取 DDL 的 SQL 命令。

select dbms_metadata.get_ddl('obJType','ObjName','Schema') from dual;

我怎样才能做到这一点?

0 投票
0 回答
100 浏览

oracle - 如何从 DBMS_METADATA 中删除主键?

我正在运行 Oracle 12.2,并希望使用 DBMS_METADATA 将表及其依赖对象复制到新模式和新名称,如下所示:

一切都很好,除了我在主键约束及其索引上得到重复。这是因为主键约束绑定到表的定义(连同所有 NOT NULL 约束)。我可以根据名称(%_PK 命名约定)排除主键约束及其索引:

... 但是之后:

.. 没有触及表中的主键约束,所以我不能向它添加 REMAP_NAME。如果我添加:

...然后所有 NOT NULL 约束都消失了 - 真可惜。

有没有办法只从 DBMS_METADATA 的 XML 中的表定义中跳过主键约束?

0 投票
0 回答
187 浏览

oracle - Oracle SQL Spool dbms_metadata.get_ddl 在 19c 中不同

当我们的数据库在 11g 中运行时,>>

是>>

现在在 19c 中,输出有所不同,并在末尾附加了另一个命令来处理本地 pdb 临时表空间 >>

有谁知道我如何在线轴之前删除最后的 Alter 命令?或者,让alter 命令执行一个换行,这样它就不会全部在同一行上进行假脱机?

谢谢您的帮助。

0 投票
0 回答
93 浏览

oracle - 如何使用 DBMS_METADATA.GET_DDL 在 pl/sql 中访问表的索引 (DDL)

我正在尝试使用 user_indexes 和 DBMS_METADATA.GET_DDL 访问表的索引 DDL

我需要手动双击 INDEX_SCRIPT 列来查看 DDL 脚本。

我想了解的是如何通过 SQL 访问 DDL 脚本。请给我建议。谢谢你

我得到了如图所示的结果

结果