【问题标题】:oracle, underlying table/view code, ddl, show table [duplicate]oracle,基础表/视图代码,ddl,显示表 [重复]
【发布时间】:2019-04-03 21:43:33
【问题描述】:

我想知道 Oracle 中以下 teradata 代码的模拟是什么。我想查找基础表或查看 ETL 代码。基本上,我想找到用于创建表/视图的代码。是否有查询可以执行此操作?请发送此代码。我只知道如何在模式浏览器中执行此操作。我正在使用 ORacle SQL Developer,模式浏览器。然后点击SQL。 我在这个表上寻找底层的 SQL。这是创建视图的 SQL 代码。这是 DDL。我只是想知道视图是如何类似地创建的,类似于 teradata 代码。

teradata
show VIEW Schema.Table
oracle
?

【问题讨论】:

  • 这成功了!!!! select text from ALL_VIEWS where upper(view_name) like upper('TABLE');
  • 如果您在管理员(系统或系统架构)中,您可以使用 all_views 而不是 user_schema,它适用于存在相关视图的普通架构。因此,如果您连接到正确的架构,@Hady Lattouf 的解决方案也可以。顺便说一句,upper 是多余的,只要表名全部大写,例如select text from all_views where view_name = 'MY_VIEW'

标签: sql oracle ddl


【解决方案1】:

对于视图,请执行以下查询:

select text from user_views where view_name = 'EMP_VIEW';

对于表,您可以执行以下查询:

select dbms_metadata.get_ddl( 'TABLE', 'EMP', 'SCOTT' ) from dual

【讨论】:

  • 我试过了....没用:(。有什么想法吗?
  • 你得到了什么结果?
  • @coder1167 它应该可以工作,你试过你的视图名称都用大写..吗?
  • 我在结果中返回了 NULL。我只有只读权限。这可能是问题吗?
  • 当你执行时:select view_name from user_views 你能在结果中找到你的视图吗?
【解决方案2】:

Oracle 有一个包DBMS_METADATA,可用于提取 DDL 命令来创建它。您可以使用GET_DDL 函数来获取表定义。

SELECT DBMS_METADATA.GET_DDL( 
           object_type => 'TABLE', 
           name => 'Table' , 
           schema => 'Schema') 
FROM DUAL;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 2014-01-20
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多