Professional Documents
Culture Documents
select count(*)
into cnt
from all_TABLES
WHERE owner='CMS'
and I.TABLE_NAME||'_A' LIKE TABLE_NAME ;
IF cnt = 0 then
IF I.TABLE_LENGTH <=28 THEN
NEW_TABLE_NAME:=i.TABLE_NAME ||'_A' ;
SQLstr := 'CREATE TABLE ' ||NEW_TABLE_NAME||'
AS SELECT * FROM '||i.TABLE_NAME|| ' WHERE 1=0';
DROPSQL:='DROP TABLE ' ||NEW_TABLE_NAME ;
--DBMS_OUTPUT.PUT_LINE (SQLSTR);
BEGIN
--EXECUTE IMMEDIATE DROPSQL;
EXECUTE IMMEDIATE SQLstr;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERROR WHEN CREATE NEW
TABLE =='||SQLstr) ;
END;
END LOOP ;
--x:=substr(x, 0, length(x)-3) ;
x:=x||' '||''''|| 'I'||''''||' , sysdate ' ;
x_U:=x_O||' '||''''|| 'U'||''''||' , sysdate '
;
x_D:=x_O||' '||''''|| 'D'||''''||' , sysdate '
;
--------------MOATAZ NEW
IF have_is_active =0 THEN
HAVE_IS_ACTIVE_DESC:=
' '||
|| chr(10)||
'ELSE' || chr(10)||
' '||
|| chr(10)||
'END IF ;'
;
END IF;
xx:=
'CREATE OR REPLACE TRIGGER '||i.TABLE_NAME
||'_T'
||chr(10)||' BEFORE INSERT OR UPDATE OR DELETE
ON ' ||i.TABLE_NAME || ' REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW '
||chr(10)||'DECLARE
BEGIN
IF INSERTING THEN '
||chr(10)||
'INSERT INTO '||NEW_TABLE_NAME||
' VALUES ( ' ||chr(10)||
x||' ) ; '
|| chr(10) ||
--UPDATING
' ELSIF UPDATING THEN '
|| chr(10) ||HAVE_IS_ACTIVE_DESC
--- 'INSERT INTO '||NEW_TABLE_NAME||
--- ' VALUES ( ' ||chr(10)||
HAVE_IS_ACTIVE_DESC||' ) ; '
|| chr(10) ||
--UPDATING
' ELSIF DELETING THEN '
|| chr(10) ||
'INSERT INTO '||NEW_TABLE_NAME||
' VALUES ( ' ||chr(10)||x_D||'
) ; '
|| chr(10) ||' end if ; ' ||
DBMS_OUTPUT.PUT_LINE( xx) ;
-----------------------------------------------------------------------------------
----------------
BEGIN
EXECUTE IMMEDIATE xx;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERROR WHEN CREATE
ATRIGER FOR TABLE =='||xx) ;
END;
NEW_TABLE_NAME:='';
SQLstr :='';
alterSQLstr :='';
X :='';
X_O :='';
X_U :='';
X_D :='';
NEW_TABLE_NAME :='';
xx :='';
DROPSQL :='';
END IF;
ELSE
DBMS_OUTPUT.PUT_LINE('LOG TABLE EXIST FOR TABLE '||
I.TABLE_NAME) ;
END IF;
END LOOP ;
END;