暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 如何摆脱get_ddl中的双引号

askTom 2017-04-20
434

问题描述

嗨,团队,

有什么方法可以摆脱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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论