【问题标题】:Oracle sql developer - export DDL - only create table sqlOracle sql developer - 导出 DDL - 只创建表 sql
【发布时间】:2013-06-25 06:28:06
【问题描述】:

我想通过在 HSQLDB 中生成所有表来运行单元测试,这些表存在于我的 oracle 数据库中。

为此,我想从 oracle 表中导出所有 DDL 创建表语句。

我尝试了导出数据库,但随着创建表 sql 我得到了很多其他 SQL,例如,

" PARTITION BY RANGE ("CREATION_DATE")" 等。

如何将所有 oracle 表(模式)导出到 HSQLDB?有没有更好的办法?

【问题讨论】:

  • 这可能是因为您的表是分区的 - 这是 ddl dyntax 的一部分。没关系。
  • 写一些正则表达式来过滤掉HSQLDB不需要的Oracle特定的东西。

标签: sql oracle hsqldb h2 ddl


【解决方案1】:

您可以使用DBMS_METADATA.GET_DDL() 函数获取表定义,并修改SET_TRANSFORM_PARAM() 选项中包含的内容,特别是在本例中为PARTITIONING 参数。

有很多示例供您搜索,但 here's one that shows the DDL being simplified 具有类似的转换。

【讨论】:

    【解决方案2】:

    这是一些工作,但您可以实现自己的工具来创建 DDL。

    您需要的一切都存储在 Oracle 数据库目录中。

    要只创建表(没有索引和约束),您需要这 2 个表:

    • USER_TAB_COLUMNS
    • USER_TABLES

    您可以在此处找到这些表格的详细文档: Oracle Database Reference

    其他有用的 Oracle 表是

    • USER_CONSTRAINTS
    • USER_INDEXES

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多