gdufo

           

          ad 刪除一個實體的SQL語句

          DECLARE
              /**
               * Please change this one to any client id you want to delete
               **/
              v_Client_ID                                                 NUMBER      := 1000014;
              
              v_SQL1                               VARCHAR2(1024);
              
              CURSOR Cur_Contraints  IS
                          select  table_name,constraint_name
                         from user_constraints  
                          where  status='ENABLED'  AND constraint_type='R' ;
                  
               CURSOR Cur_Contraints2  IS
                          select table_name,constraint_name
                          from user_constraints
                          where status='DISABLED' AND constraint_type='R';
                          
                  CURSOR Cur_Triggers  IS
                          select TRIGGER_NAME
                          from user_triggers
                          where status='ENABLED';
                                  
             CURSOR Cur_RemoveData  IS
                      select 'delete from '|| TABLENAME ||' where AD_Client_ID=' || v_Client_ID
                      AS v_SQL
                          from AD_Table a where a.ISVIEW='N'
                          AND exists ( select AD_Column_ID from AD_Column c where

          a.AD_Table_ID=c.AD_Table_ID
                          and upper(c.COLUMNNAME)= upper('AD_Client_ID') );
                      
                          
          BEGIN
              
              DBMS_OUTPUT.PUT_LINE('  Delete Client Where AD_Client_ID=' || v_Client_ID);
              
              /****************************************************************
               *  Disable all the constraints one by one
               ****************************************************************/
               DBMS_OUTPUT.PUT_LINE(' Disable the contraints ');
               FOR p IN Cur_Contraints  LOOP
                 BEGIN
                 v_SQL1 := 'alter table '|| p.table_name ||' disable constraint '|| p.constraint_name;
                  EXECUTE IMMEDIATE v_SQL1;        
                 END;  
               END LOOP;        --        Disable contraints
               
               
               DBMS_OUTPUT.PUT_LINE(' Disable the triggers ');
               FOR p IN Cur_Triggers  LOOP
                 v_SQL1 := 'alter trigger '|| p.TRIGGER_NAME ||' disable ';
                  EXECUTE IMMEDIATE v_SQL1;
               END LOOP;        --        Disable contraints
               
               /****************************************************************
               *  Remove all the records belongs to that client
               ****************************************************************/
              FOR p IN Cur_RemoveData LOOP
                  v_SQL1 := p.v_SQL;
                  EXECUTE IMMEDIATE v_SQL1;
                  
               END LOOP;        --        Remove data
               
               
               /****************************************************************
               *  Disable all the constraints one by one
               ****************************************************************/
               DBMS_OUTPUT.PUT_LINE(' Enable the contraints ');
              FOR p IN Cur_Contraints2  LOOP
                  BEGIN
                  v_SQL1 := 'alter table '|| p.table_name ||' enable constraint '|| p.constraint_name;
                  EXECUTE IMMEDIATE v_SQL1;        
                  END;
               END LOOP;        --        Enable contraints
               
               DBMS_OUTPUT.PUT_LINE(' Enable the triggers ');
               FOR p IN Cur_Triggers  LOOP
                 v_SQL1 := 'alter trigger '|| p.TRIGGER_NAME ||' enabled ';
                  EXECUTE IMMEDIATE v_SQL1;
               END LOOP;        --        Enable contraints
               
               COMMIT;


          END;

          posted on 2012-05-26 16:57 gdufo 閱讀(571) 評論(0)  編輯  收藏 所屬分類: idempiere Adempiere empiere

          導航

          統計

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Hibernate

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 盘山县| 华蓥市| 西乡县| 昭觉县| 保定市| 常宁市| 房山区| 九寨沟县| 云浮市| 威远县| 泰顺县| 金寨县| 承德市| 禄丰县| 湖南省| 绥中县| 信宜市| 遵化市| 五大连池市| 潜山县| 分宜县| 平凉市| 慈溪市| 鄢陵县| 平远县| 巫山县| 改则县| 靖边县| 通海县| 景泰县| 英超| 镇安县| 城步| 金川县| 通许县| 太谷县| 张掖市| 焦作市| 武乡县| 万州区| 安徽省|