oracle 查看表结构,表里的数据
发布时间:2025-05-20 01:27:05 发布人:远客网络
一、oracle 查看表结构,表里的数据
1、首先,我们打开PLSQL工具连接到需要进行数据比对的ORACLE数据库。
2、登录成功后,点击工具(tool)选择匹配用户结构(compare user objects)我们先匹配数据表结构以防止匹配数据时造成数据无法修改的风险。
3、在弹出的界面中选择我们需要匹配的数据表,点击目标会话(target session)输入需要匹配数据的对应数据库用户名密码,点击ok连接成功后单击匹配数据(compare)。
4、如果数据表结构有差异在弹出的界面会显示数据库中表结构的差异,并形成相关的升级sql语句,数据表匹配只考虑源数据库中没有的表或列,查看sql语句是否为我们想要匹配的,如果是点击确认匹配,数据库表结构匹配完成。
5、登录成功后,点击工具(tool)选择匹配表数据(compare table data)。
6、如果是点击确认匹配,数据库表数据匹配完成。
二、oracle查看所有表及各表行数
在Oracle数据库中,查看所有表及对应个表的行数,只用一个select语句查询table_name和num_rows两个字段即可。table_name是表名,num_rows代表表的行数。
1、查询数据库所有的表sql:select t.table_name,t.num_rows from all_tables t;
2、查询当前用户表sql:select t.table_name,t.num_rows from user_tables t;
分享一些ORACLE中,对所有表的查询sql:
select t.table_name from user_tables t;
select t.column_name from user_col_comments t;
select t.column_name from user_col_comments t where t.table_name='BIZ_DICT_XB';
4、查询指定表的所有字段名和字段说明:
select t.column_name, t.column_name from user_col_comments t where t.table_name='BIZ_DICT_XB';
select t.table_name,f.comments from user_tables t inner join user_tab_comments f on t.table_name= f.table_name;
6、查询模糊表名的表名和表说明:
select t.table_name from user_tables t where t.table_name like'BIZ_DICT%';
select t.table_name,f.comments from user_tables t inner join user_tab_comments f
on t.table_name= f.table_name where t.table_name like'BIZ_DICT%';
7、查询表的数据条数、表名、中文表名
select a.num_rows, a.TABLE_NAME, b.COMMENTS from user_tables a,user_tab_comments b WHERE a.TABLE_NAME= b.TABLE_NAME order by TABLE_NAME;
参考资料来源:百度百科-Oracle PL/SQL宝典(第2版)
参考资料来源:百度百科-Oracle数据库编程经典300例
三、oracle能否遍历数据库里所有表的字段与值
不知道你是写程序用,还是找数据用。写程序的话,一步到位,可能比较复杂!
下面附一点找数据的较笨的方法!看对你有没有用,以用户SCOTT为例:
1.dba_tab_columns有某个用户的所以表和列等信息:select table_name,column_name from dba_tab_columns where owner='SCOTT'
2.查看用户的表所使用的数据类型有哪些:select distinct Data_type from(select* from dba_tab_columns where owner='SCOTT') A通过查看,就可以知道,文本型有哪些?如:是否有char, varchar2等
3.创建一个表,用于保留那些表名和字段:CREATE TABLE SCOTT.TCOL(A VARCHAR2(50), B VARCHAR2(50))
4.因为SCOTT用户的字段类型较少,下面以找NUMBER类型值为1100的表名与字段在SQLPLUS下运行如下代码(如果数值多的话,可以用 in('NUMBER',...)格式。
select table_name,column_name from dba_tab_columns where owner='SCOTT' and DATA_TYPE='NUMBER';
fetch my_cursor into v_table,v_col;
dbms_output.put_line(v_table);
v_sql:='Insert into SCOTT.TCOL(A,B) select'||''''|| v_table||''''||','||''''|| v_col||''''||' from SCOTT.'||v_table||' where'||v_col||'=1100';
5.最后执行select* from scott.tcol,就可以看到结果!如果有用,自己再整理成一个存储过程.