【发布时间】:2018-09-11 14:37:32
【问题描述】:
如何创建存储过程以将表读入架构,并为所有表创建一个带有 DDL(仅 CREATE TABLE 和 PRIMARY KEY)的 .sql 文件。
输入参数是架构。
非常感谢
【问题讨论】:
-
无需自己编写。 Oracle 已经为您做到了dbms_metadata in the Oracle manual
-
谢谢,但我需要所有程序的完整代码...
如何创建存储过程以将表读入架构,并为所有表创建一个带有 DDL(仅 CREATE TABLE 和 PRIMARY KEY)的 .sql 文件。
输入参数是架构。
非常感谢
【问题讨论】:
您需要将“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;
/
【讨论】: