首页 > 解决方案 > 如何使用 DDL 为 Oracle 创建存储过程

问题描述

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

输入参数是模式。

太感谢了

标签: sqloracleplsql

解决方案


您需要将“MY_DIRECTORY”更改为可以写入的 Oracle 目录对象。此外,这将需要一些时间来运行 - 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;
/

推荐阅读