oracle批量修改多张表的数据,Oracle批量修改用户表table的表空间
一、修改用户表table的表空间
1、修改用户表table的表空间:alter table 表名 move tablespace 新表空间名;
2、查询所有用户表:select * from user_tables;
【脚本】
查询当前用户的所有的数据表,并把表空间为“EAS_D_HFY_STANDARD”的用户表,修改为:EAS_D_HFY120929_STANDARD。
/* Formatted on 2012-10-11 14:17:04 (QP5 v5.115.810.9015) */
DECLARE
i_count INT := 0;
execsql VARCHAR2 (1000);
CURSOR c_mysql
IS
SELECT 'alter table '
|| table_name
|| ' move tablespace EAS_D_HFY120929_STANDARD'
mysql
FROM user_all_tables
WHERE tablespace_name = 'EAS_D_HFY_STANDARD';
BEGIN
FOR r_mysql IN c_mysql
LOOP
DBMS_OUTPUT.put_line (r_mysql.mysql);
EXECUTE IMMEDIATE r_mysql.mysql;
i_count := i_count + 1;
END LOOP;
DBMS_OUTPUT.put_line ('i_count: ' || i_count);
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (
'异常:' || 'sqlcode:' || SQLCODE || ' sqlerrm : ' || SQLERRM
);
END;
二、修改索引index的表空间
【问题】
修改表table的表空间后,在操作相关表时,遇到ORA-01502问题:
ORA-01502: index 'HFY120401.PK_MULTIAPPROVE' or partition of such index is in unusable state
【分析】
1、经过系统分析,查询索引状态,可发现索引“PK_MULTIAPPROVE”的状态是“UNUSABLE”;
2、进一步分析,发现系统中的索引index_type有3类:NORMAL、FUNCTION-BASED NORMAL、LOB,除index_type为LOB类型的索引状态为VALID外,NORMAL、FUNCTION-BASED NORMAL类型的索引状态均被设置为不可用状态了UNUSABLE。
3、分析索引的语句如下:
select index_name,index_type,tablespace_name,table_type,status from user_indexes;
【脚本】
查询当前用户所有非LOB索引,并把表空间为“EAS_D_HFY_STANDARD”的索引,更新为:EAS_D_HFY120929_STANDARD。
/* Formatted on 2012-10-11 14:31:42 (QP5 v5.115.810.9015) */
DECLARE
i_count INT := 0;
CURSOR c_mysql
IS
SELECT 'alter index '
|| index_name
|| ' rebuild tablespace EAS_D_HFY120929_STANDARD'
mysql
FROM user_indexes
WHERE tablespace_name = 'EAS_D_HFY_STANDARD' and index_type<>'LOB';
BEGIN
FOR r_mysql IN c_mysql
LOOP
DBMS_OUTPUT.put_line (r_mysql.mysql);
EXECUTE IMMEDIATE r_mysql.mysql;
i_count := i_count + 1;
END LOOP;
DBMS_OUTPUT.put_line ('i_count: ' || i_count);
END;
关于ORA-01502的问题,详见:《ORA-01502错误成因和解决方法》
其实重建普通索引成功后,也试着努力更新LOB索引的,只是在详细阅读《如何重建LOB类型的索引和LOB段》后只好无奈地放弃!
oracle批量修改多张表的数据,Oracle批量修改用户表table的表空间相关推荐
- oracle数据库中批量把一张表里面的数据插入到不同的表中的方法
oracle数据库中批量把一张表里面的数据插入到不同的表中的方法(insert first into | insert all into) 准备环境 1.oracle数据库自带的scott下的用户表 ...
- php删除一张表数据的时候 把另一张表的数据也删除,剔除第一张表的数据时,修改第二张表的相关字段的数值...
删除第一张表的数据时,修改第二张表的相关字段的数值 表xf xf_id vip total 1 1 10 2 1 100 3 2 80 4 3 50 表vip vip jifen 1 1000 2 5 ...
- Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作
Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很 ...
- 用oracle存储过程取一张表里的数据放入其他表 游标取值
2019独角兽企业重金招聘Python工程师标准>>> 现已知有一个表T2(id,code,date)需从T1表中取得相应数据.使用oracle的存储过程方法. 如果用sql语言实现 ...
- oracle如何某个字段去重复的数据,Oracle 去重复的数据
重复的数据分两种,一种是表中部分字段的重复,一种是两行以上的记录完全一样. 部分字段的重复: 查询不重复的数据SQL: select 字段1,字段2,count(*) from 表名 group by ...
- php获取post表单数据_PHP get和post方法获取form表单数据
在 PHP 中使用 get 和 post 两种方法接收来自 form 表单的值,在 form 表单中可以定义 PHP 的接收方式和接收地址. get 和 post 方法主要有以下几点区别. get 是 ...
- excel导入mysql并批量查询_EXCEL批量导入到Sqlserver数据库并进行两表间数据的批量修改...
Excel 大量数据导入到sqlserver生成临时表并将临时表某字段的数据批量更新的原表中的某个字段 1:首先要对EXCEL进行处理 列名改成英文,不要有多余的列和行(通过ctrl+shift 左或 ...
- mysql游标遍历修改_mysql使用游标遍历数据进行批量针对性更新数据,急求mysql大神解答...
我现在有个数据表ud18,里面有图片上的ID,parentid,objname,现在要针对objname的这些号码进行针对性更新,写存储过程进行父子关系转换,做成树形,就是根据objname将父的id ...
- oracle建表备份数据,oracle建表备份脚本,如果update的数据不对,可以从WEB_RI_PLYEDR_CED_BAK找回...
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. --oracle建表备份脚本,如果update的数据不对,可以从WEB_RI_PLYEDR ...
最新文章
- 企业级nosql数据库应用与实战-redis
- 用Python如何查快递?
- 皮一皮:所以说不管做什么,上风口都是很重要的位置...
- BZOJ 4174 tty的求助 莫比乌斯反演
- 反击“猫眼电影”网站的反爬虫策略
- 从语言模型到Seq2Seq:Transformer如戏,全靠Mask
- 解析:Python适合哪些人学呢?
- win7右键计算机管理参数错误,win7纯净版虚拟磁盘管理器参数错误怎么解决?
- sql server无法绑定由多个部分组成的标识符_HTML5服务器推送事件(Server-sent-event)...
- 【7.9校内test】T1挖地雷
- 你身边有没有白天上班,晚上打零工送外卖、跑滴滴、做代驾的朋友?你怎么看?
- 专题五:MATLAB数据分析与多项式计算
- 毕业设计——房屋租赁管理系统
- 【LaTeX】矢量图转为pdf格式(为了将高清矢量图插入LaTeX)
- 工业机器人图册 索罗门采夫_机械手控制系统设计(完整图纸)
- 计算机内存怎样清理,怎么样清理电脑内存 电脑清理内存方法【图文】
- python语句用什么隔开_在python中使用字典时用什么隔开
- 恶意程序利用Linksys路由器漏洞在路由器中传播
- gitlab代码提交自动触发Jenkins token发版(二)
- java api gateway_微服务中的 API 网关(API Gateway)