精华内容
下载资源
问答
  • 我们知道Oracle通过数据字典来管理和展现数据库信息,这些信息至关重要。正确理解这部分内容有助于加强我们的oracle学习能力。 本文对Oracle数据字典的关系进行探讨。 接下来我们介绍一下怎样通过数据库本身来学习...
  • select * from dictionary; oracle字典表
    select * from dictionary; oracle字典表
    展开全文
  • oracle常用字典表和视图,对新手学习oracle有帮助。
  • Oracle常用字典表.docx

    2021-07-02 09:03:13
    Oracle系统字典表与动态视图
  • Oracle数据字典表查询

    2009-07-23 10:40:07
    Oracle数据字典表查询 用户 角色 表空间权限 用户特权 序列号 索引 视图 存储过程 约束条件
  • oracle 数据库字典表

    2015-11-08 16:31:14
    数据字典内容包括:  1,数据库中所有模式对象的信息,如、视图、簇、索引、集群、同义词、序列、过程、方法、包、触发器  2,分配多少空间,当前使用了多少空间等。 3,列的缺省值。  4,约束信息的完整...

    数据字典内容包括:

        1, 数据库中所有模式对象的信息,如表、视图、簇、索引、集群、同义词、序列、过程、方法、包、触发器     2, 分配多少空间,当前使用了多少空间等。     3, 列的缺省值。     4, 约束信息的完整性。     5,Oracle 用户的名字。     6, 用户及角色被授予的权限。
        7, 用户访问或使用的审计信息。
        8, 其它产生的数据库信息。


    字典表

    DBA:所有方案中的视图(可以看到所有数据字典里的信息)

    ALL:用户可以访问的视图(可以看到所有这个用户可以看到的信息)

    USER:用户方案中的视图(仅仅是这个用户拥有的信息)

    三者直接的关系:


     Oracle为了便于汇总数据字典表的信息,把所有的数据字典都汇集到dictionary表里了,通过对这个表的查询,我们可以很方便的找到数据库提供的数据字典。(数据库中一共有835张表)


    静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_xxx all_xxx dba_xxx

    USER_XXX该视图存储了当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)

    ALL_XXX该试图存储了当前用户能够访问的对象的信息而不是当前用户拥有的对象。(与user_xxx相比,all_xxx 并不需要拥有该对象,只需要具有访问该对象的权限即可)

    DBA_XXX该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)


    user_tablespaces表空间使用状态

    SQL> select tablespace_name,status from user_tablespaces;


    user_free_space:查看用户表空间的剩余空间

    案例:select tablespace_name,sum(bytes)/(1024*1024),sum(blocks)/(1024*1024) from user_free_space group by tablespace_name;



     user_users主要描述当前用户的信息,主要包括当前用户名、帐户id、帐户状态、缺省表空间、创建时间等。

         select * from user_users;
        



    user_role_privs:查看当前用户的角色。

    SQL>SELECT * FROM user_role_privs

    SQL>SELECT * FROM user_role_privs


    比如下面是SYS的角色

    SQL> select * from user_role_privs;部分截图




    user_sys_privs:查看当前用户的系统权限和表级权限

    SQL>SELECT * FROM user_sys_privs


    user_sys_privs:下面是SYS用户的系统权限和表级权限




    table

    user_tables主要描述当前用户拥有的所有表的信息,主要包括表名、表空间名、簇名等。通过此视图可以清楚了解当前用户可以操作的表有哪些。

    SQL> select table_name,tablespace_name from user_tables;



    user_objects查询该用户拥有哪些数据库对象,对象包括表、视图、存储过程、触发器、包、索引、序列、JAVA文件等

    select * from user_objects;

    select object_name,created from user_objects ;


    all_objects:查询某一用户下的所有表、过程、函数等信息。

    select owner,object_name,object_type from all_objects where owner='SCOTT';



    user_segments查看某表的大小

    SQL> select sum(bytes)/(1024*1024) "表大小(M)"

      2  from user_segments where segment_name=UPPER('&table_name');



    索引


    user_indexes 查看该用户拥有哪些索引

    SQL> select index_name,table_owner,table_name,tablespace_name from user_indexes;

    查看索引个数和类别

    SQL>SELECT index_nameindex_typetable_name FROM user_indexes ORDER BY table_name

    查看索引被索引的字段

    SQL> col INDEX_NAME for a15

    SQL> col TABLE_NAME for a10

    SQL> col COLUMN_NAME for a30

    SQL> col COLUMN_NAME for a15

    SQL>SELECT * FROM user_ind_columns WHERE index_name=UPPER'&index_name');

    查看索引的大小

    SQL>SELECT SUMbytes/1024*1024AS sizeM

    FROM user_segments WHERE segment_name=UPPER'&index_name');



    user_views查询该用户拥有哪些视图以及视图名





    查看数据库的版本信息 
         

    版本信息:

    SQL> select * from v$version;


    查看数据库的数据大小 和 总的大小 

    select sum(bytes/1024/1024/1024) from user_segment where owner = 'ETL' and segment_type = 'TABLE';
    select sum(bytes/1024/1024/1024) from user_segment where owner = 'ETL';



    展开全文
  • 使用Oracle数据库字典表生成MyBatis配置

    oracle类型转java

    生成JavaBean

    语句如下,生成的字段中含注释信息(如果您的数据库表中含有注释)。需要手动生成getter and setter.

    SELECT 
      'private '||JAVA_TYPE||' '||P_NAME||';'||
      (CASE WHEN COMMENTS IS NOT NULL THEN '  //'||COMMENTS END)
    FROM (
      SELECT SUBSTR(LOWER(S.COLUMN_NAME), 1, 1) ||
             SUBSTR(REPLACE(INITCAP(LOWER(S.COLUMN_NAME)), '_', ''), 2, 500) P_NAME,
             S.COLUMN_NAME,
             S.DATA_TYPE,
             S.DATA_SCALE,
             CASE WHEN  DATA_TYPE = 'VARCHAR2' THEN 'String' 
                  WHEN  DATA_TYPE = 'CHAR' THEN 'String'
                  WHEN  DATA_TYPE = 'LONG' THEN 'Long' 
                  WHEN  DATA_TYPE = 'NUMBER' AND DATA_SCALE > 0 THEN 'Double'
                  WHEN  DATA_TYPE = 'DATE' THEN 'Date'
                  WHEN  DATA_TYPE = 'CHAR' THEN 'Char'
                  WHEN  DATA_TYPE = 'FLOAT' THEN 'Float'
                  WHEN  DATA_TYPE = 'NUMBER' THEN 'Integer' 
                  ELSE 'String'
             END JAVA_TYPE,
             T.COMMENTS 
        FROM USER_TAB_COLS S,USER_COL_COMMENTS T
       WHERE S.TABLE_NAME = 'table_name' AND S.TABLE_NAME = T.TABLE_NAME AND S.COLUMN_NAME = T.COLUMN_NAME
       ORDER BY SEGMENT_COLUMN_ID
    )

    结果如下

    private Integer levelId;  //等级ID
    private String dept;  //部门
    private String remark;  //备注
    

    生成MyBatis配置

    SELECT '<result property="'||P_NAME||'" column="'||COLUMN_NAME||'" />' 
    FROM(
    SELECT SUBSTR(LOWER(COLUMN_NAME), 1, 1) ||
           SUBSTR(REPLACE(INITCAP(LOWER(COLUMN_NAME)), '_', ''), 2, 500) P_NAME,
           COLUMN_NAME
      FROM USER_TAB_COLS
     WHERE TABLE_NAME = 'table_name'
     ORDER BY SEGMENT_COLUMN_ID); 

    结果如下

    <result property="levelId" column="LEVEL_ID" />
    <result property="dept" column="DEPT" />
    <result property="remark" column="REMARK" />
    
    展开全文
  • Oracle常有字典表使用

    2010-04-08 11:34:40
    Oracle 用户数据字典 以及 查询表字段
  • Oracle常用数据字典表

    千次阅读 2019-07-03 14:08:27
    常用数据字典表 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息的视图等。 数据字典系统表,保存在system表空间中...

    常用数据字典表

    数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息的视图等。

    数据字典系统表,保存在system表空间中。查询所有数据字典可用语句“select * from dictionary;”。

    数据字典分类

    数据字典主要可分为四部分:

    1)内部RDBMS表:x$*,用于跟踪内部数据库信息,维持DB的正常运行。是加密命名的,不允许sysdba以外的用户直接访问,显示授权不被允许。

    2)数据字典表:*$,如tab$,obj$,ts$等,用来存储表、索引、约束以及其他数据库结构的信息。

    3)动态性能视图:gv$*,v$*,记录了DB运行时信息和统计数据,大部分动态性能视图被实时更新以反映DB当前状态。

    4)数据字典视图:user_*、all_*、dba_*,在非Sys用户下,我们访问的都是同义词,而不是V$视图或GV视图。

    数据库启动时,动态创建x$,在X$基础上创建GV$,在GV$基础上创建V$X$表-->GV$(视图)--->V$(视图)。

    数据字典视图可分为静态数据字典视图和动态数据字典视图。

    静态数据字典是指在用户访问数据字典时内容不会发生改变。这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。

    静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*(该用户方案对象的信息)、all_*(该用户可以访问的所有对象的信息)、dba_*(全部数据库对象的信息)。

    动态数据字典是Oracle包含的一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典。这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。Oracle中这些动态性能视图都是以v$开头的视图,比如v$access。

    dba_开头

    dba_users数据库用户信息

    dba_segments表段信息

    dba_extents数据区信息

    dba_objects数据库对象信息

    dba_tablespaces数据库表空间信息

    dba_data_files数据文件设置信息

    dba_temp_files临时数据文件信息

    dba_rollback_segs回滚段信息

    dba_ts_quotas用户表空间配额信息

    dba_free_space数据库空闲空间信息

    dba_profiles数据库用户资源限制信息

    dba_sys_privs用户的系统权限信息

    dba_tab_privs用户具有的对象权限信息

    dba_col_privs用户具有的列对象权限信息

    dba_role_privs用户具有的角色信息

    dba_audit_trail审计跟踪记录信息

    dba_stmt_audit_opts审计设置信息

    dba_audit_object对象审计结果信息

    dba_audit_session会话审计结果信息

    dba_indexes用户模式的索引信息

    user_开头

    user_objects用户对象信息

    user_source数据库用户的所有资源对象信息

    user_segments用户的表段信息

    user_tables用户的表对象信息

    user_tab_columns用户的表列信息

    user_constraints用户的对象约束信息

    user_sys_privs当前用户的系统权限信息

    user_tab_privs当前用户的对象权限信息

    user_col_privs当前用户的表列权限信息

    user_role_privs当前用户的角色权限信息

    user_indexes用户的索引信息

    user_ind_columns用户的索引对应的表列信息

    user_cons_columns用户的约束对应的表列信息

    user_clusters用户的所有簇信息

    user_clu_columns用户的簇所包含的内容信息

    user_cluster_hash_expressions散列簇的信息

    v$开头

    v$database数据库信息

    v$datafile数据文件信息

    v$controlfile控制文件信息

    v$logfile重做日志信息

    v$instance数据库实例信息

    v$log日志组信息

    v$loghist日志历史信息

    v$sga数据库SGA信息

    v$parameter初始化参数信息

    v$process数据库服务器进程信息

    v$bgprocess数据库后台进程信息

    v$controlfile_record_section控制文件记载的各部分信息

    v$thread线程信息

    v$datafile_header数据文件头所记载的信息

    v$archived_log归档日志信息

    v$archive_dest归档日志的设置信息

    v$logmnr_contents归档日志分析的DMLDDL结果信息

    v$logmnr_dictionary日志分析的字典文件信息

    v$logmnr_logs日志分析的日志列表信息

    v$tablespace表空间信息

    v$tempfile临时文件信息

    v$filestat数据文件的I/O统计信息

    v$undostatUndo数据信息

    v$rollname在线回滚段信息

    v$session会话信息

    v$transaction事务信息

    v$rollstat回滚段统计信息

    v$pwfile_users特权用户信息

    v$sqlarea当前查询过的sql语句访问过的资源及相关的信息

    v$sql与v$sqlarea基本相同的相关信息

    v$sysstat数据库系统状态信息

    all_开头

    all_users数据库所有用户的信息

    all_objects数据库所有的对象的信息

    all_def_audit_opts所有默认的审计设置信息

    all_tables所有的表对象信息

    all_indexes所有的数据库对象索引的信息

    session_开头

    session_roles会话的角色信息

    session_privs会话的权限信息

    index_开头

    index_stats索引的设置和存储信息

    伪表

    dual系统伪列表信息

    数据字典常用SQL查询

    1)查看表空间的名称及大小

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

    若需要查看指定表空间的大小,则可以直接添加where条件指定,否则结果集是所有表空间。

    2)查看表空间物理文件的名称及大小

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

    3)查看表空间剩余空间大小

    select tablespace_name,
     
    round(sum(bytes) / 1024 / 1024, 2) AS free_space,
     
    count(*) AS extends,
     
    sum(blocks) AS blocks
     
    from dba_free_space
     
    group by tablespace_name;

    4)查看表空间使用率

    SELECT total.tablespace_name,
     
    Round(total.total, 2)             AS Total_MB,
     
    Round(total.total - free.free, 2) AS Used_MB,
     
    Round(( 1 - free.free / total.total ) * 100, 2)
     
    || '%'                            AS Used_PCT
     
    FROM   (SELECT tablespace_name,
     
    sum(bytes) / 1024 / 1024 AS free
     
    FROM dba_free_space
     
    GROUP BY tablespace_name) free,
     
    (SELECT tablespace_name,
     
    sum(bytes) / 1024 / 1024 AS total
     
    FROM dba_data_files
     
    GROUP BY tablespace_name) total
     
    WHERE  free.tablespace_name = total.tablespace_name;

    5)查看控制文件

    select name from v$controlfile;

    6)查看日志文件

    select member from v$logfile;

    7)查看消耗资源最多的SQL

    SELECT hash_value,
     
    executions,
     
    buffer_gets,
     
    disk_reads,
     
    parse_calls
     
    FROM V$SQLAREA
     
    WHERE buffer_gets > 10000000
     
    OR disk_reads > 1000000
     
    ORDER BY buffer_gets + 100 * disk_reads DESC;

    8)捕捉运行很久的SQL

    select username,
     
    sid,
     
    opname,
     
    round(sofar*100 / totalwork,0) || '%' as progress,
     
    time_remaining,
     
    sql_text
     
    from v$session_longops,
     
    v$sql
     
    where time_remaining <> 0
     
    and sql_address = address
     
    and sql_hash_value = hash_value;

    9)查看回滚段名称及大小

    select segment_name,
     
    tablespace_name,
     
    r.status,
     
    (initial_extent/1024) InitialExtent,
     
    (next_extent/1024) NextExtent,
     
    max_extents,
     
    v.curext CurExtent
     
    from dba_rollback_segs r,
     
    v$rollstat v
     
    where r.segment_id = v.usn(+)
     
    order by segment_name;

    10)查看还没提交的事务

    select * from v$locked_object;
     
    select * from v$transaction;

     

    展开全文
  • Oracle 常用系统字典表

    千次阅读 2016-12-27 23:00:18
    Oracle常用数据字典表(系统表或系统视图)及查询SQL 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息的...
  • Oracle常用数据字典表及动态视图进想详细的讲解,并有相关sql语句
  • 使用Oracle数据字典表自动生成HTML模式文档。 尚未完成的工作 用法 安装先决条件。 安装 使用npm安装和 。 注意:在全局安装节点软件包之前,您可能需要使用sudo。 npm install --global gulp bower 获取此项目的...
  • oracle 数据字典 约束

    千次阅读 2012-10-13 11:48:24
    如果在模式中创建了10张表,那么从USER_TABLES中查询将返回10行,每一行是关于一张的特性信息 USER_TABLES不能查看非当前用户模式下创建的。 ALL_TABLES视图不但显示当前用户模式下创建的,而且显示授权...
  • oracle常用数据字典表

    千次阅读 2012-10-17 23:32:25
    ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生, 随着数据库的变化而变化,体现为sys用户下的一些和视图。数据字典名称是大写的英文字符。 数据字典里存有用户信息、用户的权限信息、所有...
  • Oracle 数据字典表 -- SYS.COL$

    万次阅读 2011-12-16 15:41:31
    一. 数据字典表SYS.COL$ 说明    Oracle 的数据字典分两类,一个数据字典表,另一个是数据字典视图。  数据字典表里的数据是Oracle系统存放的系统数据,而普通表存放的是... 数据字典表由$ORACLE_HOME/rdbms
  • Oracle数据字典表查询

    千次阅读 2009-07-09 21:19:00
    Oracle 的内存区里的 SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;  3、索引  查看索引个数和类别 SQL>select index_name,index_type,table_name from user_indexes order by...
  • ORACLE的数据字典表和动态性能视图

    千次阅读 2016-07-25 22:52:48
    Oracle提供了大量的内部表,它们记录了数据库对象的更改和修正。可以将这些内部表划分为两种主要类型:静态的数据字典表和动态的性能表。这些内部表是由oracle维护的,可以说它们是只读表。用户包括sys都不能修改。
  • oracle 常用数据字典表

    2009-04-09 14:43:00
    命令:desc user_tables; 当前用户所有的:select table_name from user_tables; 当前用户所有视图:select view_name from user_views; 当前用户所有约束:select constraint_name from user_constraints;
  • Oracle常用数据字典表(系统表或系统视图)及查询SQL数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息的视图等。数据...
  • oracle 查询数据字典

    2020-08-19 10:56:23
    SELECT A.COLUMN_NAME AS "字段名", A.DATA_TYPE AS "字段类型", A.CHAR_LENGTH AS "字段长度", A.NULLABLE AS "能否为空", B.comments AS "备注" FROM all_tab_columns A, DBA_COL_COMMENTS B ...
  • Oracle数据字典

    2012-05-29 12:37:26
    Oracle数据库的字典表,方便查询字典数据
  • 数据字典,第一次听到这个词的时候,还是刚刚踏进IT行业,计算机的知识是自己业余学的,所以对这样的专有名称并不了解,不耻下问的问一个老鸟,告知是我们写程序时,比如状态,地方码,区码等一些基础信息,也叫做...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 70,619
精华内容 28,247
关键字:

oracle字典表