ORACLE迁移中的一些经验(三)批量导出index 建索引、用户、权限等语句

原创 2015年11月21日 18:54:22

1、批量导出INDEXES语句

SELECT DBMS_METADATA.GET_DDL(u.OBJECT_TYPE, u.object_name,u.OWNER)
FROM DBA_OBJECTS u
where u.OBJECT_TYPE='INDEX' AND u.owner in('TONY');


导出语句时需要格式化,方便使用。

set linesize 180
set pages 999
set long 90000

--设置按单词换行
col a for a200 wrapped word

--去除storage等多余参数
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',FALSE);
--输出信息采用缩排或换行格式化
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'PRETTY',true);
--确保每个语句都带分号
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'SQLTERMINATOR',true);


2、-- 创建用户脚本
set serveroutput on 
set line 100
set pagesize 0
declare
cursor c1 is select username from dba_users a  where a.account_status='OPEN' ;
v_user c1%rowtype;
begin 
open c1;
loop 
   fetch c1 into  v_user ;
   exit when c1%notfound;
   DBMS_OUTPUT.put_line(to_char(dbms_metadata.get_ddl('USER',v_user.username))||';');
  end loop;
  close c1;
  end;
  /


3、---授权系统权限脚本
select 'grant '||t.privilege ||' to '||t.grantee || decode(t.admin_option,'YES',' with admin;',';') 
from dba_sys_privs t
where  t.grantee  not in 
('SPATIAL_WFS_ADMIN_USR',
'DIP'
);




4、--授角色脚本
select  'grant '||granted_role||' to '||grantee||';' from dba_role_privs 
where grantee not  in 
('SPATIAL_WFS_ADMIN_USR',
'DIP',
'MDDATA'
);


5、-- 表权限
select 'grant '||t.privilege||' on '||t.grantor||'.'||t.table_name||' to '||t.grantee||decode(t.grantable,'YES',' with grant;',';') 
from dba_tab_privs t
where t.grantor not in 
('SYS','SYSTEM','DBSNMP','PERFSTAT','OUTLN','WMSYS','CONNECT','DBA',
'EXP_FULL_DATABASE','IMP_FULL_DATABASE','OEM_MONITOR','RESOURCE','JAVADEBUGPRIV')
order by t.grantee



相关文章推荐

Oracle总结第二篇【视图、索引、事务、用户权限、批量操作】

前言在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了…那么本篇主要总结关于Oralce视图、序列、事务的一些内容…在数据库中,我们可以把各种的SQL语句分为四大类… (1)D...
  • hon_3y
  • hon_3y
  • 2017年07月06日 13:04
  • 276

Oracle按用户批量重建索引

按用户批量重建索引: 按用户将此用户下面非临时表上面的索引全部重建,此过程建议在SYS用户下面执行: Sql代码 CREATE OR REPLACE PRO...
  • yudehui
  • yudehui
  • 2012年10月22日 11:25
  • 1164

Oracle迁移之批量迁移INDEX、SEQUENCE、VIEW

通过java程序处理oracle数据库索引(INDEX)、序列(SEQUENCE)、视图(VIEW)、触发器(TRIGGER)、函数(FUNCTION)等的迁移。...

Oracle建用户,建表空间,导入导出数据等语句

sqlplus /nolog conn /as sysdba //创建临时表空间 create temporary tablespace epmt1_temp tempfile 'd:\...
  • fx_xf
  • fx_xf
  • 2014年03月24日 17:28
  • 406

在Oracle11g 中新建用户,授予只读用户权限详细步骤 (批量执行授权多表查询)

1、创建新用户  create user macs identified by 123456 default tablespace PDSCI; 2、授权connect 和 synonym  ...
  • antma
  • antma
  • 2016年10月28日 12:03
  • 1948

Oracle_Index 索引

  • 2012年06月05日 16:31
  • 184KB
  • 下载

Oracle_Index 索引3

  • 2012年06月05日 16:32
  • 262KB
  • 下载

项目经验:oracle中一个用户赋予另外一个用户对表增删改查的权限以及同步更新触发器的创建

必须要登录oracle的超级管理员

Oracle_Index 索引2

  • 2012年06月05日 16:31
  • 140KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ORACLE迁移中的一些经验(三)批量导出index 建索引、用户、权限等语句
举报原因:
原因补充:

(最多只允许输入30个字)