1

任何人都有一个 PL-SQL 语句,我可以用它来为 Oracle 10g 上的特定数据库生成数据库和表模式?我需要 .sql 文件中的架构,并且如果可能的话与 ANSI-92/99 sql 实现兼容,所以我可以直接在 sql server 2005 上使用生成的 .sql。

已经听说过 exp/imp,但似乎生成了转储文件,我只需要一个简单的 .sql 文件上的 ddl。

谢谢

4

4 回答 4

3

你可以试试:

select dbms_metadata.get_ddl('TABLE',table_name,owner)
from dba_tables where owner='schema name';

它返回 long,因此您可能想要使用 long 缓冲区。

更多关于dbms_metadata这里:http: //download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_metada.htm

于 2009-10-27T05:38:03.230 回答
2

如果你只需要转储你的模式,这个免费的包做得很好。我们在日常生产中使用它。

http://sourceforge.net/projects/cx-oracletools

如果您需要从 Oracle 转换为 SQL Server,此软件可能会做得更好。我们已经使用它在 Oracle、MySql 和 Postgreqsql 之间进行转换。

http://www.spectralcore.com/fullconvert

于 2009-10-27T04:00:56.367 回答
1

您好,我推荐使用Oracle SQL Developer Data Modeler,因为它来自 Oracle,它可以直接从数据字典中读取 DDL 信息。它创建一个 ERD,然后您可以为 SQL Server 2000/2005、某些版本的 DB2 和 Oracle 9i/10g/11g 生成 DDL。

于 2009-11-10T14:20:41.070 回答
1

I wrote oraddlscript which calls dbms_metadata.get_ddl (Pop's answer) for each database object owned by a user and writes the DDL to a file.

Update: Answered comment

于 2009-10-28T06:31:15.900 回答