sql - 如何使用 DDL 为 Oracle 创建存储过程
问题描述
如何创建存储过程以将表读入架构,并为所有表创建一个带有 DDL 的 .sql 文件(仅 CREATE TABLE 和 PRIMARY KEY)。
输入参数是模式。
太感谢了
解决方案
您需要将“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;
/
推荐阅读
- wordpress - Woocommerce - 空时隐藏价格
- javascript - 基于实时查询的数据规则示例
- html - 无法在我的网站上正确滚动
- python - 使用 Pandas 和 Matplotlib 开发交易策略
- angular - 无法分配给对象的只读属性“stopImmediatePropagation”
- oop - 方法需要特定的子类型,但集合是基本抽象类型。怎么了?
- vba - 多个 Excel 工作簿和 1004 运行时错误
- java - 导入 jar 文件后 jasper 报告中的 NoSuchMethodError
- sql - 为基于角色的访问控制构建数据库模型
- c++ - 具有 const 参数的模板未按预期分派