MINI MINI MANI MO
Rem
Rem $Header: oracler/migration/exp/storedproc.sql /main/4 2015/10/02 12:29:54 qinwan Exp $
Rem
Rem storedproc.sql
Rem
Rem Copyright (c) 2013, 2015, Oracle and/or its affiliates.
Rem All rights reserved.
Rem
Rem NAME
Rem storedproc.sql - stored procedures for export setup
Rem
Rem DESCRIPTION
Rem rqgenDumpOreUser to generate dump script for
Rem entire ORE user schema
Rem (i.e. any schema that has rq$datastoreinventory table )
Rem
Rem NOTES
Rem <other useful comments, qualifications, etc.>
Rem
Rem MODIFIED (MM/DD/YY)
Rem qinwan 09/30/15 - impdp replace inventory table
Rem qinwan 09/02/15 - use schemas instead of legacy owner parameter
Rem qinwan 06/17/15 - add rqsys to DataStore table name
Rem gayyappa 12/11/13 - Created
Rem
Rem BEGIN SQL_FILE_METADATA
Rem SQL_SOURCE_FILE: oracler/migration/exp/storedproc.sql
Rem SQL_SHIPPED_FILE:
Rem SQL_PHASE:
Rem SQL_STARTUP_MODE: NORMAL
Rem SQL_IGNORABLE_ERRORS: NONE
Rem SQL_CALLING_FILE:
Rem END SQL_FILE_METADATA
SET ECHO ON
SET FEEDBACK 1
SET NUMWIDTH 10
SET LINESIZE 80
SET TRIMSPOOL ON
SET TAB OFF
SET PAGESIZE 100
--***************************************************************************--
--* (*) PROCEDURES: Data Store *--
--***************************************************************************--
CREATE OR REPLACE PROCEDURE rqgenDumpOREUser(
muser IN VARCHAR2,
pwd IN VARCHAR2,
connectStr IN VARCHAR2,
outdir IN VARCHAR2
)
AUTHID CURRENT_USER
IS
fileHandler UTL_FILE.FILE_TYPE;
impHandler UTL_FILE.FILE_TYPE;
filList UTL_FILE.FILE_TYPE;
cursor dsown_cur is
SELECT distinct dsowner
FROM rqsys.RQ$DATASTORE ;
v_sql VARCHAR2(2000);
v_cnt integer;
v_code NUMBER;
v_errm VARCHAR2(1000);
BEGIN
fileHandler := UTL_FILE.FOPEN(outdir, 'exp_ore_user.sh', 'W');
impHandler := UTL_FILE.FOPEN(outdir, 'imp_ore_user.sh', 'W');
filList := UTL_FILE.FOPEN(outdir, 'genfileList.txt', 'W');
v_cnt := 0;
FOR ds_rec IN dsown_cur
LOOP
-- v_sql := 'impdp ' || muser || '/' || pwd
v_sql := 'impdp $1/$2@$3'
|| ' directory=' || outdir
|| ' dumpfile=' || ds_rec.dsowner || '_srcdsi.dmp'
|| ' table_exists_action=replace'
|| ' logfile=' || ds_rec.dsowner || '_dstdsi.log';
UTL_FILE.PUT(impHandler, v_sql);
UTL_FILE.NEW_LINE(impHandler, 1);
v_sql := 'expdp $1/$2@$3'
|| ' directory=' || outdir
|| ' dumpfile=' || ds_rec.dsowner || '_srcdsi.dmp'
|| ' logfile=' || ds_rec.dsowner || '_srcdsi.log'
|| ' schemas=' || ds_rec.dsowner;
UTL_FILE.PUT(fileHandler, v_sql);
UTL_FILE.NEW_LINE(fileHandler, 1);
v_sql := ds_rec.dsowner || '_srcdsi.dmp' ;
UTL_FILE.PUT(filList, v_sql);
UTL_FILE.NEW_LINE(filList, 1);
v_sql := ds_rec.dsowner || '_srcdsi.log' ;
UTL_FILE.PUT(filList, v_sql);
UTL_FILE.NEW_LINE(filList, 1);
v_cnt := v_cnt + 1;
END LOOP;
UTL_FILE.FCLOSE(fileHandler);
UTL_FILE.FCLOSE(impHandler);
UTL_FILE.FCLOSE(filList);
fileHandler := UTL_FILE.FOPEN(outdir, 'cnt_dsi_user.txt', 'W');
UTL_FILE.PUT(fileHandler,v_cnt);
UTL_FILE.FCLOSE(fileHandler);
EXCEPTION
WHEN OTHERS THEN
v_code := SQLCODE;
v_errm := SUBSTR(SQLERRM, 1, 1000);
DBMS_OUTPUT.PUT_LINE (v_code || ' ' || v_errm);
RETURN;
END;
/
SHOW ERRORS;
OHA YOOOO