select id,jm,lk from biao_a where id in
('01'.'02'.'03.'04'....................................................................................'260003',...............'1000000');.
  in 后面有大量条件,直接运行汇报ORACLE-01795 不能超过1000行数据,不要叫我每1000后加or in数太多会死人的...还有这是生产库不能随意改参数....这种大批量的数据查询怎么弄啊

解决方案 »

  1.   

    建个临时表
    select id,jm,lk from biao_a where id  (select id from temp)
      

  2.   

    create table c(
      id VARCHAR2(20 BYTE)
    )declare
    begin
    for i in 1..10000
    loop
      insert into c values (i);
    end loop;
    end;
    01 02 03 你自己在前面加个0都可以了
      

  3.   

    大批量的匹配信息不要用in 效率很低。。最好用exists
    可以把in中的内容 放入到一个临时表中 
    create table  temp01 (id varchar2(32));
    select id,jm,lk from biao_a zb where exists(select 1 from temp01 cb where cb.id = zb.id);不知道你需要匹配的数据都是什么样子的。 是不是可以用 大于号小于号处理 。
    如果 是 01 02 到 1000  10000这样的 
    直接  where id<= 10000 就可以了  如果 有多段。 可以union 一下 。
      

  4.   

    #7 说的很有道理,#4的代码是条件临时表的创建,和条件数据的添加,报错的原因是create table c(
      id VARCHAR2(20 BYTE)
    );
     
    declare
    begin
    for i in 1..10000
    loop
      insert into c values (i);
    end loop;
    end;需要一个分号
      

  5.   

    create table c(
      id VARCHAR2(20 BYTE)
    );
     
    declare
    begin
    for i in 1..10000
    loop
      insert into c values (i);
    end loop;
    end;