如何使用DDL为Oracle创建存储过程

时间:2018-09-11 14:37:32

标签: sql oracle plsql

如何创建存储过程以将表读入模式,并为所有表创建具有DDL(仅CREATE TABLE和PRIMARY KEY)的.sql文件。

输入参数是架构。

非常感谢您

1 个答案:

答案 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;
/