zoukankan      html  css  js  c++  java
  • Oracle基本操作

    --1查询所有表空间
    
    select tablespace_name from dba_tablespaces;
    select tablespace_name from user_tablespaces;
    
    --2查询使用过的表空间
    
    select distinct tablespace_name from dba_all_tables;
    
    select distinct tablespace_name from user_all_tables;
    
    --3、查询表空间中所有表的名称
    
    select * from dba_all_tables where tablespace_name = 'SYNC_PLUS_1' and owner='GDSDCZJ'
    
    --4、查询系统用户
    
    select * from all_users
    select * from dba_users
    
    --5、查看当前连接用户
    
    select * from v$session
    
    --6、查看当前用户权限
    
    select * from session_privs
    
    --7、查看所有的函数和存储过程
    
    select * from user_source
    
    --其中TYPE包括:PROCEDURE、FUNCTION
    
    --8、查看表空间使用情况
    
    select sum(Bytes_size) from (
    select a.file_id "FileNo",
    a.tablespace_name "表空间",
    a.bytes/1024/1021/1024 Bytes_size,
    a.bytes - sum(nvl(b.bytes, 0)) "已用",
    sum(nvl(b.bytes, 0)) "空闲",
    sum(nvl(b.bytes, 0)) / a.bytes * 100 "空闲百分率"
    from dba_data_files a, dba_free_space b
    where a.file_id = b.file_id(+)
    group by a.tablespace_name, a.file_id, a.bytes
    order by a.tablespace_name
    );
    
    --9.查看所有用户:
    
    select * from dba_users;
    select * from all_users;
    select * from user_users;
    
    --10.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):
    
    select * from dba_sys_privs;
    select * from user_sys_privs; (查看当前用户所拥有的权限)
    
    --11.查看角色(只能查看登陆用户拥有的角色)所包含的权限
    
    sql>select * from role_sys_privs;
    
    --12.查看用户对象权限:
    
    select * from dba_tab_privs;
    select * from all_tab_privs;
    select * from user_tab_privs;
    
    --13.查看所有角色:
    
    select * from dba_roles;
    
    --14.查看用户或角色所拥有的角色:
    
    select * from dba_role_privs;
    select * from user_role_privs;
    
    --15.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)
    
    select * from V$PWFILE_USERS
    
    --16.SqlPlus中查看一个用户所拥有权限
    
    SQL>select * from dba_sys_privs where grantee='username';
    --其中的username即用户名要大写才行。
    --比如:
    SQL>select * from dba_sys_privs where grantee='TOM';
    
    
    --17、Oracle删除指定用户所有表的方法
    
    select 'Drop table '||table_name||';' from all_tables
    where owner='要删除的用户名(注意要大写)';
    
    --18、删除用户
    
    drop user user_name cascade;
    --如:
    drop user SMCHANNEL CASCADE
    
    --19、获取当前用户下所有的表:
    
    select table_name from user_tables;
    
    --20、删除某用户下所有的表数据:
    
    select 'truncate table ' || table_name from user_tables;
    
    --21、禁止外键
    
    --ORACLE数据库中的外键约束名都在表user_constraints中可以查到。其中constraint_type='R'表示是外键约束。
    --启用外键约束的命令为:
    alter table table_name enable constraint constraint_name
    --禁用外键约束的命令为:
    alter table table_name disable constraint constraint_name
    --然后再用SQL查出数据库中所以外键的约束名:
    select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constraints where constraint_type='R'
    select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R'
    
    --22、ORACLE禁用/启用外键和触发器
    
    --启用脚本
    SET SERVEROUTPUT ON SIZE 1000000
    BEGIN
    for c in (select 'ALTER TABLE '||TABLE_NAME||' ENABLE CONSTRAINT '||constraint_name||' ' as v_sql from user_constraints where CONSTRAINT_TYPE='R') loop
    DBMS_OUTPUT.PUT_LINE(C.V_SQL);
    begin
    EXECUTE IMMEDIATE c.v_sql;
    exception when others then
    dbms_output.put_line(sqlerrm);
    end;
    end loop;
    for c in (select 'ALTER TABLE '||TNAME||' ENABLE ALL TRIGGERS ' AS v_sql from tab where tabtype='TABLE') loop
    dbms_output.put_line(c.v_sql);
    begin
    execute immediate c.v_sql;
    exception when others then
    dbms_output.put_line(sqlerrm);
    end;
    end loop;
    end;
    /
    commit;
    
    --禁用脚本
    SET SERVEROUTPUT ON SIZE 1000000
    BEGIN
    for c in (select 'ALTER TABLE '||TABLE_NAME||' DISABLE CONSTRAINT '||constraint_name||' ' as v_sql from user_constraints where CONSTRAINT_TYPE='R') loop
    DBMS_OUTPUT.PUT_LINE(C.V_SQL);
    begin
    EXECUTE IMMEDIATE c.v_sql;
    exception when others then
    dbms_output.put_line(sqlerrm);
    end;
    end loop;
    for c in (select 'ALTER TABLE '||TNAME||' DISABLE ALL TRIGGERS ' AS v_sql from tab where tabtype='TABLE') loop
    dbms_output.put_line(c.v_sql);
    begin
    execute immediate c.v_sql;
    exception when others then
    dbms_output.put_line(sqlerrm);
    end;
    end loop;
    end;
    /
    commit;
    

      

  • 相关阅读:
    FreeCommander 学习手册
    String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别 (String系列之1)
    StringBuffer 详解 (String系列之3)
    StringBuilder 详解 (String系列之2)
    java io系列26之 RandomAccessFile
    java io系列25之 PrintWriter (字符打印输出流)
    java io系列24之 BufferedWriter(字符缓冲输出流)
    java io系列23之 BufferedReader(字符缓冲输入流)
    java io系列22之 FileReader和FileWriter
    java io系列21之 InputStreamReader和OutputStreamWriter
  • 原文地址:https://www.cnblogs.com/lgx5/p/11512579.html
Copyright © 2011-2022 走看看