oracle创建用户建立表空间分配表空间分配权限命令

1、创建用户并设置密码分配dba权限

DROP USER dtjc CASCADE
drop tablespace dtjcTablespace including contents and datafiles;
commit;
create  user dtjc identified by 123456;
create tablespace dtjcTablespace datafile 'E:\app\Administrator\oradata\orcl\dtjcTableSpace.dbf' size 1000m autoextend on next 100m maxsize unlimited;
alter user dtjc default tablespace dtjcTablespace;
grant dba to dtjc;

2、创建表空间指定表空间磁盘路径和表空间大小

 create tablespace projectmanagerTableSpace datafile   'D:\oracle_tablespaces\projectmanager.dbf' size 300m;

3、修改用户对应的表空间

  alter user projectmanager default tablespace projectmanagerTableSpace;

4、分配权限给用户

   grant create session,create table,unlimited tablespace to projectmanager;
     
     grant read,write on directory data_pump_dir1 to sde;--执行失败

     grant exp_full_database,imp_full_database to sde;

    grant  connect,resource to sde identified  by sde;

5、查看用户对应的表空间

  select username,default_tablespace from user_users;
      select * from dba_tablespaces

6、查看表空间使用情况

 select tablespace_name,file_id,file_name,round(bytes/(1024*1024*1024),0) total_space from  dba_data_files order by tablespace_name; 

    select sum(bytes)/(1024*1024*1024) as free_space,tablespace_name from dba_free_space group by tablespace_name;

    select a.tablespace_name,
        a.bytes/(1024*1024*1024)  total,
        b.bytes/(1024*1024*1024) used,
        c.bytes/(1024*1024*1024) free,
        (b.bytes*100)/a.bytes "% USED",
        (c.bytes*100)/ a.bytes "% FREE"
    FROM sys.SM$ts_avail a ,
        sys.sm$ts_used b, 
        sys.sm$ts_free c
    where a.tablespace_name =b.tablespace_name
        and a.tablespace_name = c.tablespace_name

    select t.tablespace_name
    ,round(sum(bytes/(1024*1024)),0) ts_size
    from dba_tablespaces t
    ,dba_data_files d
    where t.tablespace_name = d.tablespace_name
    group by t.tablespace_name

    select sum(bytes)/(1024*1024*1024) as free_space,tablespace_name from dba_free_space group by tablespace_name;

7、查看数据库用户

 select username from dba_users;

8、查看 用户,表空间,表空间对应文件

 select * from dba_data_files;
    
    select default_tablespace from dba_users where username='dtjc'

9、查看ASM磁盘空间使用情况

select * from v$asm_diskgroup

10、删除用户

 drop user hebei

11、分配dba权限给用户

grant dba to HEBEI

12、设置表空间自动增长

alter database datafile 'E:\SDE.DBF'  autoextend on next 5M maxsize 5G;
    
    alter tablespace jack_data add datafile '数据文件路径‘ size 1000m autoextend on next 100m maxsize 4000M

    alter tablespace HEBEI add datafile 'E:\ORACLE\APP\ADMINISTRATOR\ORADATA\ORCL\HEBEIADD.DBF'  size 1000m autoextend on next 100m maxsize 20G

    //设置表空间大小没有上限
    alter tablespace HEBEI add datafile 'E:\ORACLE\APP\ADMINISTRATOR\ORADATA\ORCL\HEBEIADD20190125.DBF' size 1000m autoextend on next 100m maxsize unlimited;

    create tablespace nmgsde DATAFILE 'E:\oracle\app\Administrator\oradata\orcl\nmgsde.dbf' size 5000m autoextend on next 100m maxsize 5G;

    create tablespace csdjsde DATAFILE '+DATA/prod/datafile/csdjsde.dbf'  size 3000m autoextend on next 100m maxsize 20G;

13、删除表空间

drop tablespace nmgdjsde including contents and datafiles cascade constraint;

14、查询数据库的所有表空间的数据文件

 select * from dba_directories;

15、导出数据文件

exp dtjc/123456@orcl file=h:\dtjc20190910.dmp
 expdp sde/sde@orcl directory=data_dump_dir1 dumpfile=sde01.dmp;
 导出指定的表
 exp userid=user_data/123456@orcl tables=(T_ZD_JZDZB) file=d:\jzdzb.dmp
 加导出条件
exp gototop/gototop file=1.dmp log=1.log tables=cyx.t query="where c1=20 and c2=gototop"

16、导入数据文件

 imp gtmis_gz/gtmis_gz@localhost/orcl file=D:\gz20160304.dmp log=D:\implogsz.log full=y ignore=y
// 不同用户导入  加入 fromuser    touser 参数
imp dtjc/123456@orcl fromuser=dtjc touser=dtjc file=g:\user.dmp 
导入一个或一组指定用户所属的全部表、索引和其他对象
imp system/manager file=seapark log=seapark fromuser=seapark 
imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)
将一个用户所属的数据导入另一个用户
imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy
imp system/manager file=tank log=tank fromuser=(seapark,amy)  touser=(seapark1, amy1)

17、不同版本oracle 导入与导出

impdp USERID=‘dtjc/123456@YZT2’
directory=DATA_PUMP_DIR dumpfile=T_NDJH_SS.dmp
REMAP_SCHEMA=tdly:dtjc logfile=T_NDJH_SS.log
version=10.2.0.1.0 tables=(T_NDJH_SS)
remap_tablespace= tdly_data:dtjc
EXPDP USERID='tdly/123456@orcl'  schemas=tdly directory=DATA_PUMP_DIR dumpfile=gygg.dmp logfile=gygg.log version=10.2.0.1.0 tables=(T_GYGG)
EXPDP USERID='dtjc002/123456@orcl' schemas=dtjc002 directory=DATA_PUMP_DIR dumpfile=dtjc002.dmp logfile=dtjc002.log version=10.2.0.1.0
注意:版本号与remap_tablespace

18、oracle 修改表字段 vchar2 到 clob

先备份一下列,重命名
alter table T_CRGY_KZ rename column BC_TK to BC_TK_bak;
新建clob列
alter table T_CRGY_KZ add BC_TK clob;
更新备份列
update T_CRGY_KZ set BC_TK=BC_TK_bak;
删除备份列
alter table T_CRGY_KZ drop column BC_TK_bak;
提交
commit;

19、查看表的列和数据类型,修改表数据类型,删除列

select COLUMN_NAME,DATA_TYPE,DATA_LENGTH from user_tab_cols where table_name='T_CRJ_SJZF';
alter table T_CRJ_SJZF modify xh NUMBER(10);
alter table T_CRJ_SJZF drop column zf_je;

20、字符串转换为时间 更新

update T_GDXM set tg_sj=TO_DATE(tg_sj_bak,'YY/MM/DD HH24:MI:SS')

21、复制表结构相同的数据

insert into YJ_YDJN select * from YJ_YDJN_bak;

22、表重命名

alter table test rename to test1;

23、表添加列

altertable Tablename add(column1 varchar2(20),column2 number(7,2)...) --Oracle中修改列名不可以,但是可以删除列,增加列

22、 查看用户下所有的表

select table_name from user_tables;

23、添加主键

alter table tablename add constraint pk_tablename primary key (column1,column2,...);

24、删除表中重复记录

a、从A库中去重后导入B库中
Insert into tdsc.T_CBGY (select  *  from (select  distinct * from tdly.T_CBGY t))
b、删除表中重复数据
DELETE from t_cbgy
WHERE (cbgy_guid) IN ( SELECT cbgy_guid FROM t_cbgy GROUP BY cbgy_guid HAVING COUNT(cbgy_guid) > 1) AND ROWID NOT IN (SELECT MIN(ROWID)  FROM t_cbgy GROUP BY cbgy_guid HAVING COUNT(*) > 1);
c、删除表中重复数据DELETE from T_GYGG
WHERE (gygg_guid) IN ( 
SELECT gygg_guid FROM 
T_GYGG GROUP BY gygg_guid 
HAVING COUNT(gygg_guid) > 1) 
AND ROWID NOT IN (SELECT MIN(ROWID) 
FROM T_GYGG GROUP BY gygg_guid 
HAVING COUNT(*) > 1);
d、以上删除执行效率在10万条以上效率低,执行数小时以上没有结果
用以下语句能提高执行效率

delete   from   t_gdxm   where  
 rowid   in   (select   rid  
  from   (select   rowid   rid,row_number()  
   over(partition   by   gd_guid  
    order   by rowid)  
     rn  from   t_gdxm) where   rn   <>   1   );

25、merge 表处理

a、执行差分处理merge into
     //merge into 语法例
            /*
             *  merge into 
             *      dtjc.t_gdxm new_gdxm 
                using tdly.t_gdxm temp_gdxm 
                    on (new_gdxm.gd_guid = temp_gdxm.gd_guid) 
                when matched then 
                    update set 
                        new_gdxm.zd_guid=temp_gdxm.zd_guid,
                        new_gdxm.xzq_dm=temp_gdxm.xzq_dm,
                        new_gdxm.td_yt=temp_gdxm.td_yt
                when not matched then 
                     insert values(
                        temp_gdxm.zd_guid,
                        temp_gdxm.xzq_dm,
                        temp_gdxm.td_yt
                    ) 
            */
            /* 修正为空的字段也更新的问题做了处理
             * 参照下例
             *  merge into 
                   student_new new_gdxm
                using student temp_gdxm
                   on (new_gdxm.name = temp_gdxm.name) 
                when matched then 
                   -- 当字段为空的时候不更新,获取数据时,有时好多字段为空,字段值获取不稳定
                   -- 字段为空的时候保持原来表中的值
                   update set adress=case 
                                when temp_gdxm.adress  is not null
                                then temp_gdxm.adress else new_gdxm.adress end,
                              adress1=case 
                                when temp_gdxm.adress1 is not null
                                then temp_gdxm.adress1 else new_gdxm.adress1 end 
                 when not matched  then
                    insert values(
                               temp_gdxm.name,
                               temp_gdxm.adress,
                               temp_gdxm.adress1)*/
        

26、日期大于某指定值查询

SELECT t.*, t.rowid FROM tb_guar_attachupload t WHERE f_createtime > to_date('2013/10/25 9:38:51', 'YYYY/MM/DD HH24:MI:SS');
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值