如何创建存储过程以将表读入模式,并为所有表创建具有DDL(仅CREATE TABLE和PRIMARY KEY)的.sql文件。
输入参数是架构。
非常感谢您
答案 0 :(得分:0)
您需要将'MY_DIRECTORY'更改为可以写入的Oracle Directory对象。另外,这需要一些时间才能运行-GET_DDL并不快。
create or replace procedure table_ddl_to_file(schema_name in varchar2)
is
v_clob clob := null;
begin
for t in (select distinct table_name from all_tables where owner = schema_name)
loop
v_clob := v_clob || DBMS_METADATA.GET_DDL('TABLE',t.table_name, schema_name) || chr(10);
end loop;
DBMS_XSLPROCESSOR.CLOB2FILE(v_clob, 'MY_DIRECTORY', schema_name || '_table_ddl.sql');
end;
/