任何人都有一个PL-SQL语句,我可以使用它来生成数据库& Oracle 10g上特定数据库的表模式?我需要.sql文件中的模式,如果可能的话,与ANSI-92/99 sql实现兼容,所以我可以直接在sql server 2005上使用生成的.sql。
已经听说过exp / imp,但它似乎生成了dump文件,我只需要一个简单的ddl on .sql文件。
由于
答案 0 :(得分:3)
你可以尝试:
select dbms_metadata.get_ddl('TABLE',table_name,owner)
from dba_tables where owner='schema name';
它会返回long,因此您可能想要使用长缓冲区。
有关此dbms_metadata
的更多信息:http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_metada.htm
答案 1 :(得分:2)
如果你只需要转储你的架构,这个免费的包做得非常好。我们在日常生产中使用它。
如果您需要从Oracle转换为SQL Server,该软件可能会做得更好。我们用它在Oracle,MySql和Postgreqsql之间进行转换。
答案 2 :(得分:1)
我写了oraddlscript,它为用户拥有的每个数据库对象调用dbms_metadata.get_ddl(Pop的答案),并将DDL写入文件。
答案 3 :(得分:1)
问候,我建议使用Oracle SQL Developer Data Modeler,因为它来自Oracle,它可以直接从数据字典中读取DDL信息。它创建一个ERD,然后您可以为SQL Server 2000/2005,某些版本的DB2和Oracle 9i / 10g / 11g生成DDL。