--step1 disable constraint
begin
for i in (select uc.constraint_name, uc.table_name from user_constraints uc, all_tables tab where uc.OWNER='xx' and tab.OWNER='xx' and uc.table_name=tab.table_name)
LOOP
begin
execute immediate 'alter table '||i.table_name||' disable constraint '||i.constraint_name||'';
exception
when others then
dbms_output.put_line(i.table_name);
dbms_output.put_line(i.constraint_name);
end;
end loop;
end;
/ --step2: drop index
BEGIN
FOR ind IN
(SELECT ui.index_name FROM user_indexes ui, all_tables tab WHERE ui.TABLE_OWNER='xx' and tab.OWNER='xx' and ui.table_name=tab.table_name and INDEX_TYPE != 'LOB')
LOOP
BEGIN
execute immediate 'DROP INDEX '||ind.index_name;
exception
when others then
dbms_output.put_line(ind.index_name);
END;
END LOOP;
END;
/
COMMIT; --step3 update all coulmn
undefine schema_name;
declare
l_Err varchar2(200);
begin
for r in (select atc.table_name, atc.column_name, atc.data_length
from all_tab_columns atc, all_tables tab WHERE atc.owner=tab.OWNER and atc.table_name=tab.table_name
and atc.data_type = 'VARCHAR2'
and atc.char_used = 'B' --Indicates that the column uses BYTE length semantics (B) or CHAR length semantics (C)
-- and atc.table_name = 'INACTIVE_ACCOUNT' --TEST
and atc.owner = upper('&&schema_name'))
loop
begin
execute immediate 'alter table '|| upper('&&schema_name')
|| '.'
|| r.table_name
|| ' modify '
|| r.column_name
|| ' varchar2('
|| r.data_length
|| ' char)';
end;
commit;
end loop;
end;
/
COMMIT; --step4 create index
please refer in last part --step5 create index - run two times
begin
for i in (select uc.constraint_name, uc.table_name from user_constraints uc, all_tables tab where uc.OWNER='xx' and tab.OWNER='xx' and uc.table_name=tab.table_name)
LOOP
begin
execute immediate 'alter table '||i.table_name||' enable constraint '||i.constraint_name||'';
exception
when others then
dbms_output.put_line(i.constraint_name);
end;
end loop;
end;
/
COMMIT;
begin
for i in (select uc.constraint_name, uc.table_name from user_constraints uc, all_tables tab where uc.OWNER='xx' and tab.OWNER='xx' and uc.table_name=tab.table_name)
LOOP
begin
execute immediate 'alter table '||i.table_name||' enable constraint '||i.constraint_name||'';
exception
when others then
dbms_output.put_line(i.constraint_name);
end;
end loop;
end;
/
COMMIT;

sql for loop的更多相关文章

  1. Oracle PL/SQL之LOOP循环控制语句

    在PL/SQL中可以使用LOOP语句对数据进行循环处理,利用该语句可以循环执行指定的语句序列.常用的LOOP循环语句包含3种形式:基本的LOOP.WHILE...LOOP和FOR...LOOP. LO ...

  2. PL/SQL中LOOP循环控制语句

    在PL/SQL中可以使用LOOP语句对数据进行循环处理,利用该语句可以循环执行指定的语句序列.常用的LOOP循环语句包含3种形式:基本的LOOP.WHILE...LOOP和FOR...LOOP. LO ...

  3. [转载]Oracle PL/SQL之LOOP循环控制语句

    在PL/SQL中可以使用LOOP语句对数据进行循环处理,利用该语句可以循环执行指定的语句序列.常用的LOOP循环语句包含3种形式:基本的LOOP.WHILE...LOOP和FOR...LOOP. LO ...

  4. SQL Server loop - how do I loop through a set of records

    SQL Server loop - how do I loop through a set of records By using T-SQL and cursors like this : DECL ...

  5. pl/sql declare loop if

    -- 1.判断表是否存在,如果存在则drop表 -- 2.创建表 -- 3.插入1W条数据 -- 4.每1K条commit一次 declare v_table ):='STUDENT'; --表名 v ...

  6. PL/SQL块loop..各种循环练习

    --利用loop输出1到100的值并求和 ---loop exit end loop set serveroutput on; declare v_i ; v_sum ; begin loop )th ...

  7. [转]Dynamic SQL & Stored Procedure Usage in T-SQL

    转自:http://www.sqlusa.com/bestpractices/training/scripts/dynamicsql/ Dynamic SQL & Stored Procedu ...

  8. pl/sql tutorial

    http://plsql-tutorial.com/plsql-procedures.htm What is PL/SQL? PL/SQL stands for Procedural Language ...

  9. SQL根据B表内容修改A表内容,查询表中重复记录,删除掉重复项只保留一条

    以下sql是a,b两张表通过关联条件id修改a表值,如果b表有重复数据记录,选第一条更新,红色条件为附加限制条件,具体视情况而定: UPDATE a SETname = b.fname,pwd = b ...

随机推荐

  1. hdu 6035:Colorful Tree (2017 多校第一场 1003) 【树形dp】

    题目链接 单独考虑每一种颜色,答案就是对于每种颜色至少经过一次这种的路径条数之和.反过来思考只需要求有多少条路径没有经过这种颜色即可. 具体实现过程比较复杂,很神奇的一个树形dp,下面给出一个含较详细 ...

  2. 对Promise的研究2

    3.Promise.prototype.then() Promise 实例具有then方法,也就是说,then方法是定义在原型对象Promise.prototype上的.它的作用是为 Promise ...

  3. JDK1.8 红黑树

    序言 当在10亿数据中只需要进行10几次比较就能查找到目标时,不禁感叹编程之魅力!人类之伟大呀! —— 学红黑树有感. 红黑树的应用 红黑树的应用比较广泛,主要是用它来存储有序的数据,它的时间复杂度是 ...

  4. BZOJ 3879: SvT 虚树 + 后缀自动机

    Description (我并不想告诉你题目名字是什么鬼) 有一个长度为n的仅包含小写字母的字符串S,下标范围为[1,n]. 现在有若干组询问,对于每一个询问,我们给出若干个后缀(以其在S中出现的起始 ...

  5. 20180803-Java 流(Stream)、文件(File)和IO

    Java 流(Stream).文件(File)和IO 下面的程序示范了用read()方法从控制台不断读取字符直到用户输入"q". // 使用BufferedReader 在控制台读 ...

  6. C# 图片剪切与缩小的实例

    public void CutToF(Stream stream) { Image initImage = Image.FromStream(stream, true); && ini ...

  7. [design pattern](0) 概述

    一 引语 大家好,这是我第一次在网上写文章.从学校毕业一年多,感觉还有很多东西需要去学习.最近正在学习设计模式,希望可以在博客园把我学习的知识记录下来,能够和大家一起讨论设计模式相关的话题,也希望这个 ...

  8. [hadoop](1) MapReduce:ChainMapper

    前言 本章主要讲述的是对于hadoop生态系统中,MapReduce写的ChainMapper的学习.MapReduce是hadoop集群数据处理的默认框架.而对于数据集中所有的数据必然有一些不友好的 ...

  9. [CSP-S模拟测试]:引子(大模拟)

    题目描述 网上冲浪时,$Slavko$被冲到了水箱里,水箱由上而下竖直平面.示意图如下: 数字$i$所在的矩形代表一个编号为$i$的水箱.1号水箱为水箱中枢,有水管连出.除了$1$号水箱外,其他水箱上 ...

  10. css选择器的组合示例

     案例一demo <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...