任何人都有一个 PL-SQL 语句,我可以用它来为 Oracle 10g 上的特定数据库生成数据库和表模式?我需要 .sql 文件中的架构,并且如果可能的话与 ANSI-92/99 sql 实现兼容,所以我可以直接在 sql server 2005 上使用生成的 .sql。
已经听说过 exp/imp,但似乎生成了转储文件,我只需要一个简单的 .sql 文件上的 ddl。
谢谢
任何人都有一个 PL-SQL 语句,我可以用它来为 Oracle 10g 上的特定数据库生成数据库和表模式?我需要 .sql 文件中的架构,并且如果可能的话与 ANSI-92/99 sql 实现兼容,所以我可以直接在 sql server 2005 上使用生成的 .sql。
已经听说过 exp/imp,但似乎生成了转储文件,我只需要一个简单的 .sql 文件上的 ddl。
谢谢
你可以试试:
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
如果你只需要转储你的模式,这个免费的包做得很好。我们在日常生产中使用它。
如果您需要从 Oracle 转换为 SQL Server,此软件可能会做得更好。我们已经使用它在 Oracle、MySql 和 Postgreqsql 之间进行转换。
您好,我推荐使用Oracle SQL Developer Data Modeler,因为它来自 Oracle,它可以直接从数据字典中读取 DDL 信息。它创建一个 ERD,然后您可以为 SQL Server 2000/2005、某些版本的 DB2 和 Oracle 9i/10g/11g 生成 DDL。
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