core-jgi/db/maintain/Maintenance/8_CleanUp.sql

97 lines
2.7 KiB
SQL

/*************************************************************************
* The contents of this file are subject to the Adempiere License. You may
* obtain a copy of the License at http://www.adempiere.org/license.html
* Software is on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
* express or implied. See the License for details. Code: Adempiere ERP+CRM
* Copyright (C) 1999-2001 Jorg Janke, ComPiere, Inc. All Rights Reserved.
*************************************************************************
* $Id: 8_CleanUp.sql,v 1.1 2006/04/21 17:51:58 jjanke Exp $
***
* Title: Clean up / delete all non table objects
* Description:
* - Functions
* - Trigger
* - Procedures
* - Packages
* - Views
************************************************************************/
DECLARE
CURSOR CUR_Func IS
SELECT Object_Name FROM USER_Objects WHERE Object_Type='FUNCTION';
CURSOR CUR_Trg IS
SELECT Trigger_Name FROM USER_Triggers;
CURSOR CUR_Proc IS
SELECT Object_Name FROM USER_Procedures WHERE Procedure_Name IS NULL;
CURSOR CUR_Pack IS
SELECT Object_Name FROM USER_Procedures WHERE Procedure_Name IS NOT NULL;
CURSOR CUR_View IS
SELECT View_Name FROM USER_Views;
v_cmd VARCHAR2(256);
BEGIN
-- Functions
FOR f IN CUR_Func LOOP
v_cmd := 'DROP FUNCTION ' || f.Object_Name;
BEGIN
DBMS_OUTPUT.PUT_LINE (f.Object_Name);
EXECUTE IMMEDIATE v_Cmd;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE ('** Error ** ' || v_cmd);
END;
END LOOP;
-- Trigger
FOR t IN CUR_Trg LOOP
v_cmd := 'DROP TRIGGER ' || t.Trigger_Name;
BEGIN
DBMS_OUTPUT.PUT_LINE (t.Trigger_Name);
EXECUTE IMMEDIATE v_Cmd;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE ('** Error ** ' || v_cmd);
END;
END LOOP;
-- Function/Procedures
FOR t IN CUR_Proc LOOP
v_cmd := 'DROP PROCEDURE ' || t.Object_Name;
BEGIN
DBMS_OUTPUT.PUT_LINE (t.Object_Name);
EXECUTE IMMEDIATE v_Cmd;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE ('** Error ** ' || v_cmd);
END;
END LOOP;
-- Package
FOR t IN CUR_Pack LOOP
v_cmd := 'DROP PACKAGE ' || t.Object_Name;
BEGIN
DBMS_OUTPUT.PUT_LINE (t.Object_Name);
EXECUTE IMMEDIATE v_Cmd;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE ('** Error ** ' || v_cmd);
END;
END LOOP;
-- Views
FOR t IN CUR_View LOOP
v_cmd := 'DROP VIEW ' || t.View_Name;
BEGIN
DBMS_OUTPUT.PUT_LINE (t.View_Name);
EXECUTE IMMEDIATE v_Cmd;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE ('** Error ** ' || v_cmd);
END;
END LOOP;
END;
/