OracleSQL常用(以及经典)语句

来源:互联网 发布:如何下载打车软件 编辑:程序博客网 时间:2024/05/16 11:22
平时常常会要用到找某个对象具体内容,比如知道名字不知道它是package,procedure,function等等,如果要一个个去找也挺麻烦的。
这里就收集些常用的比较有用的SQL
1.查询对象
select * from tab 返回table/view 的名称类型
select * from tabs   这两个差不多,但如果是查询表信息的话这个最合适,返回列比较详细,全都是table类型
select * from dict  这个貌似作用不大只是返回 对象名和注释
select * from cat (视图 SYS.USER_CATALOG  的同义词)
select * from all_objects(这个最详细,一般我都用这个)
select * from user_objects(这个和all_objects差不多,只是都是用户创建的而不包括系统自动创建的对象,这个也比较常用,实际来说还是这个比all_objects得到的数据更合适些,因为我们一般不会太关注系统自带的对象)
  select table_name from user_tables;
视图:
  select text from user_views where view_name=upper('&view_name');
索引:
  select index_name,table_owner,table_name,tablespace_name,status from user_indexes order by table_name;
触发器:
  select trigger_name,trigger_type,table_owner,table_name,status from user_triggers;
快照:
  select owner,name,master,table_name,last_refresh,next from user_snapshots order by owner,next;
同义词:
  select * from syn;
序列:
  select * from seq;
数据库链路:
  select * from user_db_links;
约束限制:
  select TABLE_NAME,CONSTRAINT_NAME,SEARCH_CONDITION,STATUS from user_constraints;
本用户读取其他用户对象的权限:
  select * from user_tab_privs;
本用户所拥有的系统权限:
  select * from user_sys_privs;
用户:
  select * from all_users order by user_id;
表空间剩余自由空间情况:
  select tablespace_name,sum(bytes) 总字节数,max(bytes),count(*) from dba_free_space group by tablespace_name;
数据字典:
  select table_name from dict order by table_name;
锁及资源信息:
  select * from v$lock;不包括DDL锁
数据库字符集:
  select name,value$ from props$ where name='NLS_CHARACTERSET';
inin.ora参数:
  select name,value from v$parameter order by name;
SQL共享池:
  select sql_text from v$sqlarea;
数据库:
  select * from v$database
控制文件:
  select * from V$controlfile;
重做日志文件信息:
  select * from V$logfile;
来自控制文件中的日志文件信息:
  select * from V$log;
来自控制文件中的数据文件信息:
  select * from V$datafile;
NLS参数当前值:
  select * from V$nls_parameters;
ORACLE版本信息:
  select * from v$version;
描述后台进程:
  select * from v$bgprocess;
查看版本信息:
  select * from product_component_version;
查看对象依存关系:
select * from dba_dependencies  where  name='ObjectName'
        测试了下这个语句不如理想中那么好用,支持function,procedure,package等等,但是对与表就不合适,只有系统的表用户创建的不行
2.查询代码
select   line,text   from   user_source   where   name='OBJECT_NAME';

-----------------未完--待续----------
原创粉丝点击