【发布时间】:2020-07-02 00:31:09
【问题描述】:
我有下一个将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
我知道上面的那个行不通,但这是我想要做什么的一种想法。
感谢任何形式的帮助
【问题讨论】:
-
使用更好的工具,让您有更多的控制权。想到了 Python cx_Oracle。
标签: oracle for-loop plsql sqlplus spool