【DM版本】:7
【问题描述】:达梦如何批量导出存储过程,每个对象都生成一个文件
使用dm迁移工具导出,是所有对象都生成一个文件,想问如何一个对象一个文件
CREATE DIRECTORY DIR01 AS 'D:\dmdbms\temp';
DECLARE
v_fh UTL_FILE.file_type;
v_source CLOB;
v_filename VARCHAR2(100);
v_dir_alias VARCHAR2(30) := 'DIR01'; -- 这里需要替换成你创建的目录名
BEGIN
FOR t IN (SELECT object_name
FROM all_objects
WHERE object_type = 'PROCEDURE' and GENERATED='N'
AND owner = 'SYSDBA' -- 这里需要替换成你的schema名
)
LOOP
v_filename := t.object_name || '.sql';
v_fh := UTL_FILE.fopen(v_dir_alias, v_filename, 'w');
v_source := DBMS_METADATA.GET_DDL('PROCEDURE', t.object_name, 'SYSDBA'); -- 这里需要替换成你的schema名
UTL_FILE.put(v_fh, v_source);
UTL_FILE.fclose(v_fh);
END LOOP;
EXCEPTION
WHEN OTHERS THEN
IF UTL_FILE.is_open(v_fh) THEN
UTL_FILE.fclose(v_fh);
END IF;
RAISE;
END;
使用dts迁移工具,迁移到文本文件