首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle DDL导出

Oracle DDL导出
EN

Stack Overflow用户
提问于 2013-02-08 06:46:40
回答 3查看 3K关注 0票数 4

我正在尝试在HSQL数据库中重新创建oracle数据库。这是为了在本地开发人员系统上实现更好的单元测试。

我需要知道的是,我可以在oracle服务器/客户端中使用任何工具/命令,它们可以为oracle数据库中的所有对象(表、同义词、视图等)提供所有DDL命令。

我计划遍历创建的DDL命令,并尝试将这些命令转换为HSQL兼容命令。

有可能吗?

欢迎提出任何建议。

系统信息:

代码语言:javascript
复制
Oracle DB: Oracle enterprise server 11g R2. 
HSQL DB: hsql 2.2.9
EN

回答 3

Stack Overflow用户

发布于 2013-02-08 07:07:28

您可以结合使用DBMS_METADATA package和数据字典来为您的对象生成动态链接库。例如,为模式中的每个表生成DDL

代码语言:javascript
复制
declare
  l_ddl clob;
begin
  for t in (select * from user_tables)
  loop
    l_ddl := dbms_metadata.get_ddl( 'TABLE', t.table_name, USER );
    <<do something with l_ddl>>
  end loop;
end;

您确定使用与实际要部署的数据库完全不同的数据库进行测试有意义吗?即使您将DDL转换为最接近的类比,对于某些测试,您似乎很可能会得到不同的结果,这取决于您所连接的数据库。您确定不能在开发人员的计算机上安装Oracle (如果您主要关心的是许可问题,则可能是Oracle XE )吗?

票数 2
EN

Stack Overflow用户

发布于 2013-02-08 07:17:53

有相当多的产品可以提供帮助。

OpenSource:http://www.liquibase.org/manual/formatted_sql_changelogs

免费试用的商业广告:http://www.devart.com/dbforge/oracle/schemacompare/new-export-oracle-schema.html

如果您使用的工具通常仅用于Oracle数据库,则可能会得到大量需要转换的非标准Oracle DDL。跨平台工具更有可能减少工作。

在ORA兼容模式下使用HSQLDB时,它可以将DDL中的某些Oracle类型转换为类似的SQL标准类型。因此,类型可能不会造成问题。

票数 1
EN

Stack Overflow用户

发布于 2013-11-15 14:16:58

一个开源的非活动项目做了完全相同的事情。

http://schemamule.sourceforge.net/index.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14762526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档