以下的文章主要是介绍Oracle sqlplus命令中用户有效地利用Oracle数据字典的方案,我们大家都知道Oracle数据字典作为数据库的重要的组成部分之一,是随着数据库的产生而产生, 随着数据库的变化而变化,体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。
数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。
我们不能手工修改数据字典里的信息。
很多时候,一般的Oracle用户不知道如何有效地利用它。
dictionary 全部数据字典表的名称和解释,它有一个同义词dict
dict_column 全部数据字典表里字段名称和解释
如果我们想查询跟索引有关的Oracle数据字典时,可以用下面这条SQL语句:

如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句:
依此类推,就可以轻松知道Oracle数据字典的详细名称和解释,不用查看Oracle的其它文档资料了。
下面按类别列出一些Oracle用户常用数据字典的查询使用方法。
1、用户
查看当前用户的缺省表空间
查看当前用户的角色
查看当前用户的系统权限和表级权限
2、表
在Oracle数据字典中我们需要查看用户下所有的表
查看名称包含log字符的表
查看某表的创建时间
查看某表的大小
查看放在Oracle的内存区里的表
3、索引
查看索引个数和类别
查看索引被索引的字段
查看索引的大小
4、序列号
查看序列号,last_number是当前值
5、视图
查看视图的名称
创建Oracle数据字典中查看创建视图的select语句
说明:可以根据视图的text_length值设定set long 的大小
6、同义词
查看同义词的名称
7、约束条件
查看某表的约束条件
play.bitsCN.com累了吗玩一下吧
8、存储函数和过程
查看函数和过程的状态
查看函数和过程的源代码
【编辑推荐】
求一条sql语句,把数据库表中一个字段里面的数据数字和文字都分开,并且生成一个相对应的列
思路大概是这样:实用ltrim或者rtrim函数去掉左边或右边符合条件的字符。 如果是oracle环境,看你这里都是字母在前数字在后的格式,假设旧列叫 col_old,新的字母列是col_str,新的数字列是col_numupdate table1 set col_str=rtrim(col_old,),col_num=to_number(ltrim(col_old,rtrim(col_old,)))sql server 有没有这个函数不知道了,反正这是一个思路吧。 供参考而已sql没有这个东西,那我就给你提个思路吧,语句你自己写了,我没有环境。 用ASCII码和sql的ltrim和rtrim来做,你需要循环找到从左起每个字符都是ASCII>=65(9以上即字母)的,直到找到ASCII<=64的就结束,这样可以把这个字符部分的长度得到,在用trim函数截取一下就可以了。
如何将oracle的NLS_LANGUAGE 由 AMERICAN_AMERICA.AL32UTF8修改成SIMPLIFIED CHINESE_China.AL32UTF8
1. 修改server端字符集在oracle8之前,可以用直接修改数据字典表props$来改变数据库的字符集。 但oracle8之后,至少有三张系统表记录了数据库字符集的信息,只改props$表并不完全,可能引起严重的后果。 2. 测试不行,用scott/tiger登陆sqlplus然后connect sys/sys as sysdba,然后输入命令即可 。 若此时数据库服务器已启动,则先执行SHUTDOWN IMMEDIATE命令关闭数据库服务器。 ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。 它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。 所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。 如果需要修改字符集,通常需要导出数据库数据,重建数据库,再导入数据库数据的方式来转换。
如何快捷地查询Oracle中每个用户表的表名和行数?
dba权限下可以查询dba_tables,里面有个num_rows列selecttable_name,num_rowsfromdba_tableswhere...;条件可以根据自己需要来加不过提醒下,num_rows列并不是事实更新的,好像是1小时更新一次,查新之前最好先analyze下analyzetablexxxcomputestatistics;
发表评论