Oracle自动生成普通索引的创建脚本

这篇具有很好参考价值的文章主要介绍了Oracle自动生成普通索引的创建脚本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Oracle自动生成普通索引的创建脚本

要整理所有的普通索引创建脚本,不包括分区索引,分区组合索引。
按dba_indexes ,dba_ind_columns 两个索引字典表,生成创建索引SQL 。
脚本如下:文章来源地址https://www.toymoban.com/news/detail-596955.html

declare 
  -- 自动生成普通索引的创建脚本,不包括分区索引,分区组合索引
  sqltext varchar2(2000);
  owner_name varchar2(20); -- 用户owner名
  tb_index varchar2(20);  -- 索引表空间名
  
begin
   execute immediate 'alter session enable parallel dml';
   owner_name := 'TEST' ;
   tb_index := 'tb_ind_test';
   
    -- 重建普通索引,不包括分区索引
    for cur_index in (select t.index_name,t.table_name from dba_indexes t where t.owner=owner_name) loop
      
      -- 创建索引名,表名,左括号
      sqltext := 'create index ' || cur_index.index_name ||  ' on ' || cur_index.table_name  || ' ('   ;
      
      for cur_col in 
        -- 按索引列位置,加入索引命令的括号内
        (select t.index_name,t.table_name,t.column_name,t.column_position from dba_ind_columns t 
                where t.index_name=cur_index.index_name order by t.column_position ) loop

         -- 索引字段       
         sqltext := sqltext || cur_col.column_name || ','    ;  
    
      end loop;           
         -- 删除最后一个逗号    
         sqltext := substr(sqltext ,1,length(sqltext)-1);
         
         
         --增加右括号
         sqltext := sqltext || ')' ;

         -- 索引所属表空间
         sqltext := sqltext || ' tablespace ' || tb_index || ' ;' ;

     dbms_output.put_line(sqltext);
     
     -- sql命令字符串清空     
     sqltext := '';         
     
    end loop;
  
end;
/

到了这里,关于Oracle自动生成普通索引的创建脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • certbot生成证书,配置nginx,利用脚本自动续期

    踩了大量坑,做下记录。以下适用于博主本人,但是未必会适用于所有人   在生成泛域名证书时,我们需要手动在DNS解析中配置TXT,然而续费命令 renew 无法去完成我们手动配置TXT的过程,需要我们手动配置,所以会报错。   我们需要用到一个DNS插件,这样我们就不需要

    2023年04月15日
    浏览(56)
  • 【效率提升-Perl脚本】根据Verilog文件自动生成tb文件

    在数字IC设计过程中,根据顶层生成testbench时存在很多重复性工作,因此为了提高工作效率,特地开发此脚本。 相应的python脚本见链接: 【效率提升—Python脚本】根据Verilog文件自动生成tb文件 学习更多IC知识,请关注

    2024年02月13日
    浏览(47)
  • 【sgCreateAPI】自定义小工具:敏捷开发→自动化生成API接口脚本(接口代码生成工具)

      具体步骤:登录 Apifox https://app.apifox.com/   圈选复制上面的内容粘贴到【接口地址列表】输入框,自动生成脚本代码 生成的接口请求代码是基于 【Vue.js最新版】【基于jQuery Ajax】[sd.js]最新原生完整版for凯哥API版本_你挚爱的强哥的博客-CSDN博客 【代码】【最新版】【基于j

    2024年02月09日
    浏览(58)
  • 软件测试/测试开发丨利用ChatGPT 生成自动化测试脚本

    自动化测试脚本可以模拟用户与应用程序的交互,例如点击按钮、输入数据、导航到不同的页面等等,以验证应用程序的正确性、性能和稳定性。 自动化测试在回归测试、冒烟测试等测试流程中都可以极大地起到节省时间、节省人力的作用,所以目前自动化测试工程师,也是

    2024年02月05日
    浏览(63)
  • 使用Python创建快速创建剪映草稿轨道,自动生成视频

    实现原理 : JianYingPro 项目文件是 json 的形式存储的,只需要创建 draft_content.json , draft_mate_info.json 打开软件后会自动补全。 作用:快速生成草稿,可以完成一个比较粗剪辑,提升效率。 本库可以帮你快速自动识别音频和视频添加到对应的轨道。自动生成草稿后,就可以自动剪

    2024年02月13日
    浏览(44)
  • Selenium IDE :安装、配置、录制 轻松生成UI自动化测试脚本

    Selenium IDE 是一个用于 Web 测试的集成开发环境。是 Chrome 和 Firefox 的插件,可以记录和回放与浏览器的交互过程。 可以从SeleniumIDE官方地址下载:https://www.selenium.dev/selenium-ide/ 打开浏览器,这里使用的是chrome浏览器。选择\\\"更多工具扩展程序\\\" **注意:**必须要打开“开发者模式

    2024年02月14日
    浏览(59)
  • 系列十三、idea创建文件自动生成作者信息

            File===Settings===Editor===File and Code Templates===Includes===File Header

    2024年02月11日
    浏览(49)
  • Android Studio 创建项目不自动生成BuildConfig文件

    今天在AS上新建项目发现找不到BuildConfig文件,怎么clear都不行。通过多方面查找发现原来gradle版本不同造成的,Gradle 8.0默认不生成 BuildConfig 文件。 如上图,8.0版本是没有source文件夹 上图是低于8.0版本有source文件夹 针对这个问题,有两种解决办法        方法一:降低Gr

    2024年01月22日
    浏览(47)
  • Python 代码打造小 AI ,罗列博文笔记总索引列表,自动生成“我的博文笔记总索引”博文 HTML5 源码文本

    Python 代码打造小 AI ,获取笔记信息,自动阅读量降序编排索引列表,生成 HTML5 源码文本。 【学习的细节是欢悦的历程】 Python 官网 :https://www.python.org/ Free :大咖免费“ 圣经 ”教程《 python 完全自学教程 》,不仅仅是基础那么简单…… 地址:https://lqpybook.readthedocs.io/   

    2023年04月22日
    浏览(64)
  • 9个python自动化脚本,PPT批量生成缩略图、添加图片、重命名

    最近一番在整理资料,之前买的PPT资源很大很多,但归类并不好,于是一番准备把这些PPT资源重新整理一下。统计了下,这些PPT资源大概有2000多个,一共30多G,一个一个手动整理这个投入产出比也太低了。 作为程序员,当然要重复的工作程序化,让机器自动执行。于是一番

    2024年02月11日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包