问题描述
嗨,团队,
有什么方法可以摆脱dbms_metadata.get_ddl的输出中的双引号。以下是dbms_metaada.get_ddl ('TABLE','TEST') 的示例输出:
例如,创建表 “测试”
(“F1” 编号 (4,0) 不为空启用,
“F2” 号 (6,0) 不为空启用,
"F3" 号 (6,0),
主键 (“F1” 、 “F2”)
..............
...............
我应该得到这样的输出
创建表测试
(F1号 (4,0) 不为空启用,
F2号 (6,0) 不为空启用,
F3编号 (6,0),
主键 (F1,F2)
..............
...............
注意: 需要在没有双引号的情况下获取整个模式的DDL。不能使用替换功能,因为代码中可能使用了一些双引号
内部包/程序/触发器等
是否有任何会话级别设置或其他方法来解决此问题?
问候
P.拉维·库马尔
有什么方法可以摆脱dbms_metadata.get_ddl的输出中的双引号。以下是dbms_metaada.get_ddl ('TABLE','TEST') 的示例输出:
例如,创建表 “测试”
(“F1” 编号 (4,0) 不为空启用,
“F2” 号 (6,0) 不为空启用,
"F3" 号 (6,0),
主键 (“F1” 、 “F2”)
..............
...............
我应该得到这样的输出
创建表测试
(F1号 (4,0) 不为空启用,
F2号 (6,0) 不为空启用,
F3编号 (6,0),
主键 (F1,F2)
..............
...............
注意: 需要在没有双引号的情况下获取整个模式的DDL。不能使用替换功能,因为代码中可能使用了一些双引号
内部包/程序/触发器等
是否有任何会话级别设置或其他方法来解决此问题?
问候
P.拉维·库马尔
专家解答
没有dbms_metadata转换 (甚至在12.2中) 可以做到这一点。一个妥协也许是通过对象类型?
select
case when object_type in ('FUNCTION','PROCEDURE',...) then
dbms_metadata.get_ddl(object_type,object_name)
else
replace(dbms_metadata.get_ddl(object_type,object_name),'"')
end
from user_objects;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




