oracle 对表重建索引,重建特定Oracle表的所有常规索引
我们有一个将LONG列转换为LOB的迁移脚本,如
Oracle migration guide所述,该表的索引现在需要重建.
假设表名是MY_TABLE,我一直在尝试运行这个脚本:
BEGIN
FOR index_entry IN (
select INDEX_NAME from user_indexes where table_name='MY_TABLE' and index_type='NORMAL'
)
LOOP
ALTER INDEX index_entry.index_name REBUILD;
END LOOP;
END;
但是,它失败并出现以下语法错误:
PLS-00103: Encountered the symbol "ALTER" when expecting one of the following:
( begin case declare exit for goto if loop mod null pragma
raise return select update while with
<<
continue close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe purge
[Failed sql: BEGIN
FOR index_entry IN (
select INDEX_NAME from user_indexes where table_name='MY_TABLE' and index_type='NORMAL'
)
LOOP
ALTER INDEX index_entry.index_name REBUILD]
ALTER不是在循环中使用的有效命令吗?
编辑:在lad2025的建议中,尝试使用EXECUTE IMMEDIATE,如下所示:
5: LOOP
6: execute immediate 'alter index ' || index_entry.index_name || ' rebuild';
7: END LOOP;
我收到:
ORA-06550: line 6,column 92:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
* & = - + ; < / > at in is mod remainder not rem return
returning <> or != or ~= >= <= <> and or
like like2 like4 likec between into using || bulk member
submultiset
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
编辑2:EXECUTE IMMEDIATE正常工作.文件结束问题与Liquibase执行我的脚本有关,而我忘记定义我的< sql>阻止:
^ defaults to true
重要的是,默认情况下,Liquibase会以分号分割语句,这需要关闭.
oracle 对表重建索引,重建特定Oracle表的所有常规索引相关推荐
- mysql 表 视图 索引吗_Mysql多表查询, 视图,事务,索引,函数,go连接数据库
1.1 今日目标 理解多表查询 理解子查询 能够创建视图 能够删除视图 能够查看创建视图的SQL语句 能够理解事务的作用 能够操作事务 理解索引的作用 能够创建索引 能够删除索引 知道常用的函数 了解 ...
- Oracle对表名大小写敏感吗,让Oracle 大小写敏感 表名 字段名 对像名
一.解决方案 1.在表名.字段名.对象名上加上双引号,即可实现让oracle大小写区分. 2.但是这又引起了另一个问题:在数据库操作中,sql语句中相应的表名.字段名.对象名上一定要加双引号. 解决办 ...
- Oracle分区表3种重建方法(基础原理、优点、类型、表分区总结)----(实战)
一.分区原理 提供了分区技术以⽀持VLDB(Very Large DataBase),分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中,分区完全对应用透明. Oracle的分区表可以包括 ...
- oracle突然查询变慢,[转] Oracle sql 查询突然变慢 -- 案例分析
一条sql突然执行变慢,耗时9秒,应用是不能改的,只能从数据库方面下手解决 步骤思路: 1:查看sql是否走索引 2:查看索引是否失效 3:hint 强制走索引(只是用来查看hint状态下,查询是否更 ...
- mySQL数据表创建索引_MySQL创建数据表 建索引
除非注明,文章均为易水寒原创,版权属于易水寒博客,转载请注明出处,谢谢. 三.数据字段属性: 1.unsigned 可以让空间增加一倍,如果不希望在字段中插入负值就使用此属性,另外只能用在数值型字段. ...
- 锁表:MyISAM非聚集索引和InnoDB聚集索引的各种锁表问题
参考文献 Mysql数据库中的各种锁_张花生的博客-CSDN博客_数据库锁 面试官:MySQL死锁有哪些场景?如何避免? 概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存 ...
- mysql索引执行计划_第六章· MySQL索引管理及执行计划
一.索引介绍 1.为什么要做索引 让获取的数据更具有目的性,从而提高数据库检索数据的性能 2.索引类型介绍 1)BTREE:树索引 B+树索引 B*树索引 2)HASH:HASH索引 3)FULLTE ...
- mysql千万级数据索引查询_mysql千万级数据量根据索引优化查询速度
(一)索引的作用 索引通俗来讲就相当于书的目录,当我们根据条件查询的时候,没有索引,便需要全表扫描,数据量少还可以,一旦数据量超过百万甚至千万,一条查询sql执行往往需要几十秒甚至更多,5秒以上就已经 ...
- Oracle中重建表的全局的索引、分区索引、及同时建全局和分区索引----脚本
在oracle中,重建普通表上的索引很简单.要重建特定索引,只需执行如下sql命令: ALTER INDEX INDEX_NAME Rebuild; 这里INDEX_NAME 代表索引的名字,下同. ...
最新文章
- opencv-python处理图片的一些列操作
- 修改Linux root用户名 后提示network manager启动失败修复
- 2021.12.20用ULN2003驱动四线步进电机
- 频域分析方法的理解(信号、频谱、能量谱、功率谱、倒频谱、小波分析)(终极教程)
- 外部 Storage Provider - 每天5分钟玩转 Docker 容器技术(149)
- 前端学习(1819):前端面试题之封装函数之冒泡排序
- C4.5决策树生成算法完整版(Python),连续属性的离散化, 缺失样本的添加权重处理, 算法缺陷的修正, 代码等
- Win7系统还原声音图标的方法
- 《C++ Primer Plus》读书笔记之七—内存模型和名称空间
- 它估值 25 亿!被马云领投,是华为“老战友”,网友:也许股价能超茅台!
- 关于 Apache 2.4 配置PHP时的错误记录
- micropython常用模块-Python时间模块之datetime
- FFmpeg合并ts文件为mp4文件
- Vue Markdown编辑器
- 计算机更换固态硬盘方法,换SSD不重装系统的方法
- js 实现打以及样式问题
- 跟i9处理器差不多的服务器芯片,AMD下一代服务器处理器代号“星河舰队”
- 为什么行程码不能显示到县级,工信部回应
- windows下mysql误删除数据恢复
- SAP ME架构官网文档学习总结