如何查看oracle查看所有数据库数据库中的所有表

Oracle中查看所有表和字段 - h8178的博客 - CSDN博客
Oracle中查看所有表和字段
获取表字段:
from user_tab_columns
where Table_Name='用户表'
order by column_name
获取表注释:
from user_tab_comments
where Table_Name='用户表'
order by Table_Name
获取字段注释:
from user_col_comments
where Table_Name='用户表'
order by column_name
/* 获取表:*/
select table_name from user_
select table_name from all_
select table_name from dba_
select table_name from dba_tables where owner='zfxfzb'
user_tables:
table_name,tablespace_name,last_analyzed等
dba_tables:
ower,table_name,tablespace_name,last_analyzed等
all_tables:
ower,table_name,tablespace_name,last_analyzed等
all_objects:
ower,object_name,subobject_name,object_id,created,last_ddl_time,timestamp,status等
获取表字段:*/
select * from user_tab_columns where Table_Name='用户表';
select * from all_tab_columns where Table_Name='用户表';
select * from dba_tab_columns where Table_Name='用户表';
user_tab_columns:
table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等
all_tab_columns :
ower,table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等
dba_tab_columns:
ower,table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等
获取表注释:*/
select * from user_tab_comments
user_tab_comments:table_name,table_type,comments
相应的还有dba_tab_comments,all_tab_comments,这两个比user_tab_comments多了ower列。
/* 获取字段注释:*/
select * from user_col_comments
user_col_comments:table_name,column_name,comments
相应的还有dba_col_comments,all_col_comments,这两个比user_col_comments多了ower列。
我的热门文章如何查询Oracle中所有用户信息
如何查询中所有用户信息
1.查看所有用户:
select * from dba_
select * from all_
select * from user_
2.查看用户或角色权限(直接赋值给用户或角色的系统权限):
select * from dba_sys_
select * from user_sys_ (查看当前用户所拥有的权限)
3.查看角色(只能查看登陆用户拥有的角色)所包含的权限
sql&select * from role_sys_
4.查看用户对象权限:
select * from dba_tab_
select * from all_tab_
select * from user_tab_
5.查看所有角色: select * from dba_
6.查看用户或角色所拥有的角色:
select * from dba_role_
select * from user_role_
7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)
select * from V$PWFILE_USERS
8.SqlPlus中查看一个用户所拥有权限
SQL&select * from dba_sys_privs where grantee='username'; 其中的username即用户名要大写才行。
比如: SQL&select * from dba_sys_privs where grantee='TOM';
9、Oracle删除指定用户所有表的方法
select 'Drop table '||table_name||';' from all_tables where owner='要删除的用户名(注意要大写)';
10、删除用户
drop user user_ 如:drop user SMCHANNEL CASCADE
11、获取当前用户下所有的表:
select table_name from user_
12、删除某用户下所有的表数据:
select 'truncate table
' || table_name from user_
13、禁止外键 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'
14、ORACLE禁用/启用外键和触发器 --启用脚本
SET SERVEROUTPUT ON SIZE 1000000
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);
EXECUTE IMMEDIATE c.v_
exception when others then
dbms_output.put_line(sqlerrm);
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);
execute immediate c.v_
exception when others then
dbms_output.put_line(sqlerrm);
--禁用脚本
SET SERVEROUTPUT ON SIZE 1000000
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);
EXECUTE IMMEDIATE c.v_
exception when others then
dbms_output.put_line(sqlerrm);
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);
execute immediate c.v_
exception when others then
dbms_output.put_line(sqlerrm);查看: 17016|回复: 10
问下怎么在数据库所有的表中查找数据?
论坛徽章:5
怎么在数据库所有的表中查找一个值,输入要查找字段,返回表名,字段名,
这个问题我记得以前也有人问过,但后来再找就没找到,望指点
论坛徽章:395
原始的需求是什么,
虽然可以通过数据字典构造动态sql,但效率必定很差
论坛徽章:9
我觉得不可能做到。
就算是通过PLSQL,利用动态sql也无法突破schema的限制。
表的名字可以用变量代替。schema名不可以的。
论坛徽章:5
这个原始的需求,就是我今天找一个数据,忘了它在哪张表了,所以想查一下。
这个不用突破schema的限制,应该是我描述不太专业造成的。
这个对性能要求不高,我想1个小时之内跑完就可以接受。
如果动态SQL能实现的话,麻烦哪位写个简单的学习下。
论坛徽章:479
原帖由 ccsnmoracle 于
11:37 发表
我觉得不可能做到。
就算是通过PLSQL,利用动态sql也无法突破schema的限制。
表的名字可以用变量代替。schema名不可以的。
schema name和表名一样处理,都是拼到FROM&&后面就行。
即使是表名也无法用绑定变量。
论坛徽章:479
大概就是这样:
& &lv_str VARCHAR2(100) :='TEST';
& &lv_rowid ROWID;
& &FOR lv_rec IN (SELECT TABLE_NAME,wmsys.wm_concat(COLUMN_NAME) COL
& && && && && && &&&FROM USER_TAB_COLUMNS
& && && && && && & WHERE DATA_TYPE='VARCHAR2'
& && && && && && &GROUP BY TABLE_NAME
& && && && && &&&)
& && &BEGIN
& && && &EXECUTE IMMEDIATE 'SELECT ROWID FROM '||lv_rec.table_name||' WHERE '''||lv_str||''' IN ('||lv_rec.col||') AND ROWNUM=1'
& && && &INTO lv_
& && &EXCEPTION
& && && &WHEN NO_DATA_FOUND THEN
& && && && &&&lv_rowid := NULL;
& && &END;
& && &IF lv_rowid IS NOT NULL THEN
& && && &DBMS_OUTPUT.PUT_LINE('TABLE NAME='||lv_rec.table_name||' ROWID='||lv_rowid);
& && && &EXIT;
& && &END IF;
& &END LOOP;
论坛徽章:15
除非数据含有特殊的内容,但即使找到,也很慢。
论坛徽章:74
看了newikd的写法,才知道in原来还可以这样用啊
SELECT * FROM scott.emp e WHERE e.sal IN (e.empno, e.deptno); --这个只能是在同一行中比较
SELECT * FROM scott.emp e WHERE&&'7839' IN (e.empno,e.mgr); -- 这个可以在所有记录中比较
[ 本帖最后由 onano 于
17:46 编辑 ]
论坛徽章:5
谢谢newkid,学习了。
论坛徽章:32
select * from all_col_comments a where a.column_name = upper('你的字段名称');
itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号:10 广播电视节目制作经营许可证:编号(京)字第1149号Oracle列出数据库所有表名和列名_数据库技术_Linux公社-Linux系统门户网站
你好,游客
Oracle列出数据库所有表名和列名
来源:Linux社区&
作者:newhappy
1 显示所有表名:&select table_name from user_&2 Oracle显示所有列名:&select OWNER, TABLE_NAME, COLUMN_NAME&from all_tab_columns &where table_name =&附:Oracle创建临时表&CREATE GLOBAL TEMPORARY TABLE Table_name& &
(startdate DATE,& & & enddate DATE,& & & class CHAR(20))&
ON COMMIT DELETE ROWS;
更多Oracle相关信息见 专题页面
相关资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款中国领先的IT技术网站
51CTO旗下网站
oracle查询用户所有表的语句
如果需要查询oracle数据库用户下所有的表,应该如何实现呢?下文将为您介绍oracle查询用户所有表的语句,供您参考。
作者:佚名来源:互联网| 15:34
下面为您介绍的语句用于实现oracle查询用户所有表,如果您对查询方面感兴趣的话,不妨一看。
select * from all_tab_comments
-- 查询所有用户的表,视图等
select * from user_tab_comments&&
-- 查询本用户的表,视图等
select * from all_col_comments
--查询所有用户的表的列名和注释.
select * from user_col_comments
-- 查询本用户的表的列名和注释
select * from all_tab_columns
--查询所有用户的表的列名等信息(详细但是没有备注).
select * from user_tab_columns
--查询本用户的表的列名等信息(详细但是没有备注).
--一般使用1:
select t.table_ments from user_tab_comments t
--一般使用2:
select r1, r2, r3, r5
from (select a.table_name r1, a.column_name r2, a.comments r3
&&&&&&&&& from user_col_comments a),
&&&&&& (select t.table_name r4, t.comments r5 from user_tab_comments t)
where r4 = r1
以上就是oracle查询用户所有表的语句介绍。
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条热点头条头条热点
24H热文一周话题本月最赞
讲师:428785人学习过
讲师:245833人学习过
讲师:271244人学习过
精选博文论坛热帖下载排行
本书是一本知识全面、系统、专业的网络工程基础知识必备图书。全书条理清晰、逻辑性强,遵循从全局到细节,从底层基础到高层应用的顺序全面...
订阅51CTO邮刊

我要回帖

更多关于 oracle查询所有数据库 的文章

 

随机推荐