oracle如何遍历表 oracle如何遍历表并取出数据

oracle能否遍历数据库里所有表的字段与值

不知道你是写程序用,还是找数据用。写程序的话,一步到位,可能比较复杂!

创新互联-专业网站定制、快速模板网站建设、高性价比凤翔网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式凤翔网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖凤翔地区。费用合理售后完善,十载实体公司更值得信赖。

下面附一点找数据的较笨的方法!看对你有没有用,以用户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',...)格式。

set serveroutput on

delete from scott.TCOL;

commit;

declare

cursor my_cursor is

select table_name,column_name from dba_tab_columns where owner='SCOTT' and DATA_TYPE='NUMBER';

v_table varchar2(50);

v_col varchar2(50);

v_sql varchar2(4000);

begin

open my_cursor;

loop

fetch my_cursor into v_table,v_col;

dbms_output.put_line(v_table);

exit when my_cursor%NOTFOUND;

v_sql:='Insert into SCOTT.TCOL(A,B) select '||''''|| v_table||''''||','||''''|| v_col||''''||' from SCOTT.'||v_table||' where '||v_col||'=1100';

dbms_output.put_line(v_sql);

EXECUTE IMMEDIATE v_sql;

commit;

end loop;

close my_cursor;

end;

5.最后执行select * from scott.tcol,就可以看到结果! 如果有用,自己再整理成一个存储过程.

以上仅参考!

oracle中如何查询多张表的数据!

弄个字符串变量,设个游标,用括号里那一串;

然后遍历表名,每找到一个表名,就在字符串变量里拼上一段:= 'select * from '||table_name||';',

然后用EXECUTE IMMEDIATE执行;

然后读下一个表名,直至遍历完毕。

大致就是这么个意思。

oracle中如何根据表中一个字段遍历数据

写个for循环就可以遍历一遍,例如meminfo 表中有member_id 你现在有的id需要在meminfo 中查询出现次数

declare

i number(5);

id number(15);

begin

for rec in(select member_id from meminfo) loop

if member_id=id

then i:=i+1;

end if;

end;

这样就会遍历一遍你的这个数据库

Oracle:对一定数量的表(几千个)进行遍历或其他方式查询,轮流处理每张表并输出所有表的最终处理结果

下面语句用于批量生成语句,生成后在sqlplus执行select 'select id,sum(result) from '||table_name||' group by id;' from user_tables where table_name like 'MRO_%_201702';

oracle如何实现遍历查询?

declare

teacher_name varchar(20)------------跟teacher表中老师名字类型保持一致

cursor t_name is select teachername from teacher---------申明游标t_name为从teacher表中查询老师名字

begin

open t_name;------打开游标t_name

loop-------开始循环(遍历)

fetch t_name into teacher_name-------将老师名字值赋予变量teacher_name

if t_name%found-------------开始遍历有值时插入以下数据

then

select name,count(*) into new_table

from table_teacher_student

where name=teacher_name group by name-----将一个老师名字依据条件插入新表数据

else

dmbs_output.put_line(‘完成所有工作’);---------遍历结束时输出完成工作

exit;

end if;

end loop;

仓促写下以上内容,可能部分语法报错,思路就是这样,很基本的一个游标使用。


分享标题:oracle如何遍历表 oracle如何遍历表并取出数据
标题URL:http://myzitong.com/article/hggddg.html