我有将user_tables
的DDL存储到文件中的下一个假脱机:
set pagesize 0
set long 90000
spool C:\Users\personal\Desktop\MAIN_USR\test.txt
select DBMS_METADATA.GET_DDL('TABLE',table_name,'MAIN_USR')
FROM user_tables ut;
spool off
exit
它将所有user_tables
的DDL返回到单个文件中,但是我需要使其更具动态性,并使用各自表的文件名将它们返回到单独的文件中。像这样的东西:
set pagesize 0
set long 90000
FOR tab_nam IN (SELECT table_name FROM user_tables) LOOP
spool C:\Users\personal\Desktop\MAIN_USR\test.txt
select DBMS_METADATA.GET_DDL('TABLE',table_name,'MAIN_USR')
FROM user_tables ut;
spool off
END LOOP;
exit
我知道上面的那个是行不通的,但这有点像我想做什么。
我非常感谢您的帮助
您需要阅读USER_TABLES才能创建对DBMS_METADATA.GET_DDL的N个调用,每个调用都有其自己的假脱机文件。
然后运行刚刚假脱机的文件
@out.sql