Skip to content
Snippets Groups Projects
Commit eb8bc3f4 authored by Dennis Waldron's avatar Dennis Waldron
Browse files

Replaced by generic drop script: castor/db/drop_oracle_schema.sql

parent a027d399
Branches
Tags
No related merge requests found
/*******************************************************************
*
* @(#)$RCSfile: castor_oracle_drop.sql,v $ $Revision: 1.45 $ $Date: 2008/11/24 17:39:55 $ $Author: waldron $
*
* This file drops all defined entities from a (stager) database.
* For the time being, it does NOT drop the monitoring-related ones.
*
* @author Castor Dev team, castor-dev@cern.ch
*******************************************************************/
BEGIN
-- Purge the recycle bin
EXECUTE IMMEDIATE 'PURGE RECYCLEBIN';
-- Drop all objects (ignore monitoring ones!)
FOR rec IN (SELECT object_name, object_type
FROM user_objects
WHERE object_name NOT LIKE 'SYS_PLSQL_%'
ORDER BY object_name, object_type)
LOOP
IF rec.object_type = 'TABLE' THEN
EXECUTE IMMEDIATE 'DROP TABLE '||rec.object_name||' CASCADE CONSTRAINTS';
ELSIF rec.object_type = 'PROCEDURE' THEN
EXECUTE IMMEDIATE 'DROP PROCEDURE '||rec.object_name;
ELSIF rec.object_type = 'FUNCTION' THEN
EXECUTE IMMEDIATE 'DROP FUNCTION '||rec.object_name;
ELSIF rec.object_type = 'PACKAGE' THEN
EXECUTE IMMEDIATE 'DROP PACKAGE '||rec.object_name;
ELSIF rec.object_type = 'SEQUENCE' THEN
EXECUTE IMMEDIATE 'DROP SEQUENCE '||rec.object_name;
ELSIF rec.object_type = 'TYPE' THEN
EXECUTE IMMEDIATE 'DROP TYPE "'||rec.object_name||'" FORCE';
ELSIF rec.object_type = 'JOB' THEN
DBMS_SCHEDULER.DROP_JOB(JOB_NAME => rec.object_name, FORCE => TRUE);
END IF;
END LOOP;
-- Purge the recycle bin
EXECUTE IMMEDIATE 'PURGE RECYCLEBIN';
END;
/
\ No newline at end of file
/*******************************************************************
*
* @(#)$RCSfile: repack_oracle_drop.sql,v $ $Revision: 1.5 $ $Date: 2008/11/06 13:20:07 $ $Author: waldron $
*
* This file drops all defined entities from a (repack) database.
*
* @author Castor Dev team, castor-dev@cern.ch
*******************************************************************/
BEGIN
-- Purge the recycle bin
EXECUTE IMMEDIATE 'PURGE RECYCLEBIN';
-- Drop all objects (ignore monitoring ones!)
FOR rec IN (SELECT object_name, object_type FROM user_objects
ORDER BY object_name, object_type)
LOOP
IF rec.object_type = 'TABLE' THEN
EXECUTE IMMEDIATE 'DROP TABLE '||rec.object_name||' CASCADE CONSTRAINTS';
ELSIF rec.object_type = 'PROCEDURE' THEN
EXECUTE IMMEDIATE 'DROP PROCEDURE '||rec.object_name;
ELSIF rec.object_type = 'FUNCTION' THEN
EXECUTE IMMEDIATE 'DROP FUNCTION '||rec.object_name;
ELSIF rec.object_type = 'PACKAGE' THEN
EXECUTE IMMEDIATE 'DROP PACKAGE '||rec.object_name;
ELSIF rec.object_type = 'SEQUENCE' THEN
EXECUTE IMMEDIATE 'DROP SEQUENCE '||rec.object_name;
ELSIF rec.object_type = 'TYPE' THEN
EXECUTE IMMEDIATE 'DROP TYPE "'||rec.object_name||'" FORCE';
ELSIF rec.object_type = 'JOB' THEN
DBMS_SCHEDULER.DROP_JOB(JOB_NAME => rec.object_name, FORCE => TRUE);
END IF;
END LOOP;
-- Purge the recycle bin
EXECUTE IMMEDIATE 'PURGE RECYCLEBIN';
END;
/
\ No newline at end of file
/******************************************************************************
* dlf_oracle_drop.sql
*
* This file is part of the Castor project.
* See http://castor.web.cern.ch/castor
*
* Copyright (C) 2003 CERN
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* @(#)$RCSfile: dlf_oracle_drop.sql,v $ $Release: 1.2 $ $Release$ $Date: 2008/11/06 13:20:07 $ $Author: waldron $
*
* This script drops a DLF schema
*
* @author Castor Dev team, castor-dev@cern.ch
*****************************************************************************/
DECLARE
username VARCHAR2(2048);
BEGIN
-- Purge the recycle bin
EXECUTE IMMEDIATE 'PURGE RECYCLEBIN';
-- Drop all objects (ignore monitoring ones!)
FOR rec IN (SELECT object_name, object_type FROM user_objects
ORDER BY object_name, object_type)
LOOP
IF rec.object_type = 'TABLE' THEN
EXECUTE IMMEDIATE 'DROP TABLE '||rec.object_name||' CASCADE CONSTRAINTS';
ELSIF rec.object_type = 'PROCEDURE' THEN
EXECUTE IMMEDIATE 'DROP PROCEDURE '||rec.object_name;
ELSIF rec.object_type = 'FUNCTION' THEN
EXECUTE IMMEDIATE 'DROP FUNCTION '||rec.object_name;
ELSIF rec.object_type = 'PACKAGE' THEN
EXECUTE IMMEDIATE 'DROP PACKAGE '||rec.object_name;
ELSIF rec.object_type = 'SEQUENCE' THEN
EXECUTE IMMEDIATE 'DROP SEQUENCE '||rec.object_name;
ELSIF rec.object_type = 'TYPE' THEN
EXECUTE IMMEDIATE 'DROP TYPE "'||rec.object_name||'" FORCE';
ELSIF rec.object_type = 'JOB' THEN
DBMS_SCHEDULER.DROP_JOB(JOB_NAME => rec.object_name, FORCE => TRUE);
END IF;
END LOOP;
-- Extract the name of the current user running the PLSQL procedure.
SELECT SYS_CONTEXT('USERENV', 'CURRENT_USER')
INTO username
FROM dual;
-- Drop tablespaces
FOR rec IN (SELECT tablespace_name, status
FROM user_tablespaces
WHERE tablespace_name LIKE CONCAT('DLF_%_', username))
LOOP
IF rec.status = 'ONLINE' THEN
EXECUTE IMMEDIATE 'ALTER TABLESPACE '||rec.tablespace_name||' OFFLINE';
END IF;
EXECUTE IMMEDIATE 'DROP TABLESPACE '||rec.tablespace_name||'
INCLUDING CONTENTS AND DATAFILES';
END LOOP;
-- Purge the recycle bin
EXECUTE IMMEDIATE 'PURGE RECYCLEBIN';
END;
/
/* End-of-File */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment