Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE
- v_object_file UTL_FILE.FILE_TYPE;
- v_object_filename VARCHAR2(1000);
- v_single_file UTL_FILE.FILE_TYPE;
- v_single_filename VARCHAR2(1000) := 'single_file_ddl.sql';
- v_folder_dir VARCHAR2(1000) := 'filepath';
- v_owner VARCHAR2(20) := 'SCHEMA';
- BEGIN
- /*This procedure will generate 2 types of file:
- A single file with all the ddl inside it.
- One file for each object in the project.*/
- v_single_file := UTL_FILE.FOPEN(v_folder_dir, v_single_filename, 'W');
- FOR c1 IN (
- SELECT DBMS_METADATA.get_ddl(OBJECT_TYPE, OBJECT_NAME, OWNER) ddl_text, OBJECT_NAME, OBJECT_TYPE
- FROM ALL_OBJECTS
- WHERE OWNER = UPPER(v_owner)
- AND OBJECT_TYPE NOT IN ('LOB','JOB','PACKAGE BODY')
- AND OBJECT_NAME NOT LIKE ('APEX$%') --Ignore apex internal objects
- ORDER BY OBJECT_TYPE, OBJECT_NAME
- ) LOOP
- /*Object file*/
- v_object_filename := c1.OBJECT_TYPE||'_'||c1.OBJECT_NAME||'.sql';
- v_object_file := UTL_FILE.FOPEN(v_folder_dir, v_object_filename, 'W');
- UTL_FILE.put_line(v_object_file, c1.ddl_text);
- UTL_FILE.put_line(v_object_file, '/');
- UTL_FILE.FCLOSE(v_object_file);
- /*Single file*/
- UTL_FILE.put(v_single_file, '--'||v_object_filename);
- UTL_FILE.put_line(v_single_file, c1.ddl_text);
- UTL_FILE.put_line(v_single_file, '----------------------------');
- UTL_FILE.put_line(v_single_file, '/');
- END LOOP;
- UTL_FILE.FCLOSE(v_single_file);
- END;
Advertisement
Add Comment
Please, Sign In to add comment