基于DBMS_METADATA.GET_DDL函数批量导出索引的创建语句
/* 首先要说的DBMS_METADATA.GET_DDL是个好函数呀!新项目不知道哪个缺心眼建的同构库,只是见了表结构,并没有健非主键外的索引,领导让追加一版,以前只是会用视图拼sql创建,今天有学会一招oracle-9i以上版本可以使用,导出的内容有点复杂需要用编辑器处理下并且替换一下实例名(schema),select TO_CHAR(DBMS_METADATA.GET_DDL('TABLE','T_LCPOL')) from dual; 第一个参数就是类型如index、table、function、等 第二个参数就是 typeName 出来的结果就是创建这个typeName的DDL语句了!注意大写,还有一点要注意的是务必是同一个实例(Sechema),不同所属会报错,如果是想要生成不同所属的内容需要添加第三个参数,可以添加第二个参数的Owner 例如select replace(to_char(DBMS_METADATA.GET_DDL('TABLE','DUAL','SYS')),'"','') from dual; 最下面有这个函数的具体实现*/
--以下例子是用来批量生成索引的语句,不合适的格式需文本编辑器修正下。
SELECT substr(replace(to_char(DBMS_METADATA.GET_DDL('INDEX', a.INDEX_NAME)),'"',''),0,instr(replace(to_char(DBMS_METADATA.GET_DDL('INDEX',a.INDEX_NAME)),'"',''),') ',1)) || ';' createindexsql
from dba_indexes a
WHERE a.TABLE_TYPE = 'TABLE'
and a.TABLE_OWNER = 'GIS'
and a.OWNER = 'GIS'
and NOT EXISTS (SELECT 'x'
FROM dba_constraints b
WHERE a.OWNER = b.OWNER
and a.INDEX_NAME = b.CONSTRAINT_NAME
and b.CONSTRAINT_TYPE = 'P') order by 1;
--单纯用视图拼接sql; 两者可一比较下哪个更适合
SELECT TABLE_OWNER,'Create index '||b.INDEX_NAME||' on '||
b.TABLE_OWNER||'.'||
b.TABLE_NAME||'('||
listagg(a.COLUMN_NAME, ',') within group(ORDER by a.TABLE_NAME)||');'
FROM user_ind_columns a, user_indexes b
WHERE a.INDEX_NAME = b.INDEX_NAME and
NOT EXISTS (SELECT 'x'
FROM user_constraints c WHERE
b.INDEX_NAME = c.CONSTRAINT_NAME
and c.CONSTRAINT_TYPE = 'P') --不包括主键
GROUP BY b.INDEX_NAME, b.TABLE_OWNER, b.TABLE_NAME ORDER BY 1;
--DBMS_METADATA.GET_DDL函数的具体实现
FUNCTION get_ddl (
object_type IN VARCHAR2,
name IN VARCHAR2,
schema IN VARCHAR2 DEFAULT NULL,
version IN VARCHAR2 DEFAULT 'COMPATIBLE',
model IN VARCHAR2 DEFAULT 'ORACLE',
transform IN VARCHAR2 DEFAULT 'DDL')
RETURN CLOB;
基于DBMS_METADATA.GET_DDL函数批量导出索引的创建语句的更多相关文章
- Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?
Oracle中如何导出存储过程.函数.包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句? QQ群里有人问:如何导出一个用户下的存储过程? 麦苗答:方法有多种,可以使用DBMS_MET ...
- oracle中查询用户表/索引/视图创建语句
不多说,直接上干货 1.查询当前用户下表的创建语句 select dbms_metadata.get_ddl('TABLE','ux_future') from dual; 2.查询其他用户下表的创建 ...
- Navicat批量导出mysql的DDL语句
工作中有的时候需要将某个库中的表.视图.函数.存储过程等创建语句导出,又不需要表中的数据.同时最好放在同一个文件里面,这样方便拷贝. 方法一:需要拷贝的创建语句条数不多,不至于让你拷到头脑发晕的地步, ...
- 利用dbms_metadata.get_ddl查看DDL语句
http://www.cnblogs.com/aocle/archive/2011/10/13/2209790.html 当我们想要查看某个表或者是表空间的DDL的时候,可以利用dbms_metada ...
- Oracle利用dbms_metadata.get_ddl查看DDL语句
当我们想要查看某个表或者是表空间的DDL的时候,可以利用dbms_metadata.get_ddl这个包来查看. dbms_metadata包中的get_ddl函数详细参数 GET_DDL函数返回创建 ...
- Oracle中的dbms_metadata.get_ddl的用法
当我们想要查看某个表或者是表空间的DDL的时候,可以利用dbms_metadata.get_ddl这个包来查看. dbms_metadata包中的get_ddl函数详细参数 GET_DDL函数返回创建 ...
- QQ空间相册照片批量导出
QQ空间相册照片批量导出 先自己创建一个私人的单独的群,然后创建相册,上传照片来源从空间选图复制 复制完成后打开相册开始骚操作(两种方式) OK
- Windows Server 2016-查询并导出固定时间段创建AD用户
生产环境中往往我们有各式各样的需求,例如快速查询某段时间创建用户,或批量导出固定时间段创建用户列表,具体操作如下: $date=Get-Date $oldday=(Get-Date).AddDays( ...
- sqlserver批量导出存储过程、函数、视图
select text from syscomments s1 join sysobjects s2 on s1.id=s2.id where xtype = 'V' xtype V 视图 P ...
随机推荐
- redhat7.4安装gitlab
1.参考官方安装指南 https://about.gitlab.com/install/#centos-7 2.遇到的问题 2.1.启动postfix出错 错误内容 Job for postfix.s ...
- 5.4.1 sequenceFile读写文件、记录边界、同步点、压缩排序、格式
5.4.1 sequenceFile读写文件.记录边界.同步点.压缩排序.格式 HDFS和MapReduce是针对大文件优化的存储文本记录,不适合二进制类型的数据.SequenceFile作 ...
- tar中的参数 cvf,xvf,cvzf,zxvf的区别
tar cvf etcbak.tar etc/ 打包一个tar tar xvf etcbak.tar 解开一个tar tar cvzf etcbak.tar.gz etc/ 打包压缩 ...
- iOS App的几种安全防范
虽然公司的项目目前还不算健壮,安全问题对于大部分小公司来说似乎并没什么必要,不过要攻击的话,我有十足的把握,我们是无法承受冲击的.嘿嘿嘿~不过带着一颗入坑iOS的心思,搜集了一下资料后,还是做了一些尝 ...
- 【Linux】安装 PostgreSQL
参考: CSDN1:https://blog.csdn.net/ctwy291314/article/details/79900074 1.进入 PostgreSQL 官网的下载地址, 2.选择下面的 ...
- php mvc 模式的开发注意事项
1.控制器中: 如果不涉及到数据库的就在控制器中. empty($res['code']) ? $this->error($res['msg']) : $this->success($re ...
- geth run
geth --networkid 1201 --rpc --rpcapi eth,net,web3,personal,admin,miner --rpccorsdomain "*" ...
- docker安装mysql挂载外部配置和数据目录
从docker hub上可以找到mysql外挂配置和数据目录的一些文档说明 https://hub.docker.com/_/mysql 从该文档中可以了解到,mysql的默认配置为/etc/mysq ...
- [转]用代码访问 Https
可以参考: https://blog.csdn.net/irokay/article/details/78801307 跳过证书验证方法 HttpClient简介HTTP 协议可能是现在 Intern ...
- Mapper抽象类参数
Mapper< Object, Text, Text, IntWritable> Mapper< Text, Text, Text, Text> Mapper< Text ...