select id,jm,lk from biao_a where id in
('01'.'02'.'03.'04'....................................................................................'260003',...............'1000000');.
in 后面有大量條件,直接運行匯報ORACLE-01795 不能超過1000行資料,不要叫我每1000后加or in數太多會死人的...還有這是生產庫不能隨意改引數....
這種大批量的資料查詢怎么弄啊
uj5u.com熱心網友回復:
建個臨時表select id,jm,lk from biao_a where id (select id from temp)
uj5u.com熱心網友回復:
1000個in效率能快到哪去,改寫成樓上的寫法uj5u.com熱心網友回復:
這樣寫,那些大量的條件放在哪個位置啊~
uj5u.com熱心網友回復:
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都可以了
uj5u.com熱心網友回復:
in 后面不要加引號和逗號么
uj5u.com熱心網友回復:
報錯00922
uj5u.com熱心網友回復:
大批量的匹配資訊不要用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 一下 。
uj5u.com熱心網友回復:
利用子查詢........uj5u.com熱心網友回復:
#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;
uj5u.com熱心網友回復:
create table c(id VARCHAR2(20 BYTE)
);
declare
begin
for i in 1..10000
loop
insert into c values (i);
end loop;
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/92105.html
標籤:基礎和管理
上一篇:oracle sql改成mysql 出錯You can't specify target table 'r' for update in FROM clause
下一篇:select 陳述句報錯“ORA-00923: FROM keyword not found where expected”
