分批查效率高。
在泌阳等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、成都网站建设、外贸营销网站建设 网站设计制作按需开发网站,公司网站建设,企业网站建设,品牌网站设计,营销型网站,外贸营销网站建设,泌阳网站建设费用合理。
1、oracle分批查可以外层的查询条件推到内层查询中,而一次性查只能在通过索引在查。
2、oracle分批查相较于一次性查用的时间更短。
几千行对 oracle 来说不是问题,可以一次提交
如果一定要这么做,有两种方式:
一,用游标打开,一行拼一个insert 语句,并计数;满100后提交
二,分页查询,每页100行 ,然后提交
我觉得:能一次提交的尽量不要分开提交,如果提交到一部分时候,出现问题了,提交的不能回滚了。增加了业务逻辑的复杂性。
全show出来麼?
select 单位栏位名,电话栏位名 from 表名
不就行麼?
不明白所谓的分批。如果是数据量太大,可以考虑写procedure,通过for 循环,将资料一部分一部分存放到本地,然后在再本地表里查询。这个方法当然是对于少量表来说,比较方便快捷。如果是大量的表,可以考虑使用replication 或stream
首先,oracle中有存放表名的系统表,所以你那个tcmz有点多余
declare
v_tablename varchar2(60);
v_count int;
v_sql varchar2(2000);
cursor cur_tablename is
select table_name from user_tables;
begin
open cur_tablename;
loop
fetch cur_tablename into v_tablename;
exit when cur_tablename%notfound;
v_sql:='select count(*) from '||v_tablename||'';
execute immediate v_sql into v_count;
dbms_output.put_line(v_tablename||':'||v_count);
end loop;
close cur_tablename;
end;
如果非要用你那个的话,可以这样改
declare
v_tablename varchar2(60);
v_count int;
v_sql varchar2(2000);
cursor cur_tablename is
select 表名 from tcmz;--字段名你替换成你自己的
begin
open cur_tablename;
loop
fetch cur_tablename into v_tablename;
exit when cur_tablename%notfound;
v_sql:='select count(*) from '||v_tablename||'';
execute immediate v_sql into v_count;
dbms_output.put_line(v_tablename||':'||v_count);
end loop;
close cur_tablename;
end;