使用 DBMS_METADATA.GET_DDL 为没有架构名称的对象生成 DDL 脚本?
如何使用 DBMS_METADATA.GET_DDL
为我的对象生成 DDL 脚本,而无需嵌入架构名称?
使用 DBMS_METADATA.GET_DDL:
CREATE TABLE "MYSCHEMA"."MYTABLE"
(
"COL1" NUMBER(10,0)
)
SQL Developer 可以做到这一点,我认为它也使用 DBMS_METADATA 来实现此目标和通用 DDL 脚本。
使用 SQL 开发人员:
CREATE TABLE "MYTABLE"
(
"COL1" NUMBER(10,0)
)
How can I generate the DDL script for my object with DBMS_METADATA.GET_DDL
without the schema name baked in?
With DBMS_METADATA.GET_DDL
:
CREATE TABLE "MYSCHEMA"."MYTABLE"
(
"COL1" NUMBER(10,0)
)
SQL Developer can do that, and I think it's also uses the DBMS_METADATA to achive this goal and generale DDL scripts.
With SQL Developer:
CREATE TABLE "MYTABLE"
(
"COL1" NUMBER(10,0)
)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我最近偶然发现以下内容,它允许您在没有模式名称的情况下获取 ddl。
它看起来比我迄今为止见过的任何其他方式简单得多,尽管它没有包含在任何 Oracle 文档中。我在 SQL Developer 的语句日志中发现了它,它生成没有模式名称的 ddl。
您不需要获取句柄或任何讨厌的东西,只需在调用 DBMS_METADATA.GET_DDL 之前执行上面的操作即可
I recently stumbled upon the following which allows you to get ddl without the schema name.
It looks a lot simpler than any other way I have seen so far although its not included in any Oracle documentation. I spotted it in the Statements Log in SQL Developer, which generates ddl without the schema name.
You don't need to get handles or anything nasty just EXEC the above before calling DBMS_METADATA.GET_DDL
将 SET_REMAP_PARAM 与 REMAP_SCHEMA 选项结合使用:
这会将 HR 模式映射到 NULL(不过,您需要一个作业句柄);有关完整示例,请参阅 metadata_api 文档
Use SET_REMAP_PARAM with the REMAP_SCHEMA option:
This will map the HR schema to NULL (you'll need a job handle, though); for a full example, see metadata_api documentation
除了删除架构(如上面 David Norris 的建议)之外,如果您想删除存储和其他属性。基本上,只是一个普通的 DDL,然后使用下面的:
In addition to removing schema(As suggested by David Norris above), if you want to remove storage and other attributes. Basically, just a plain DDL, then use below :