oracle in list 問題解析

2021-09-01 07:06:03 字數 991 閱讀 9357

解決where in list 問題,首要考慮的就是解決列表長度問題和效率問題,效率問題首要考慮繫結變數問題,另外還要考慮比如cardinality對執行計畫的影響等

declare

v_condition varchar2(100);

v_sql varchar2(1000);

v_count number(10);

begin

v_condition :='''xy'''||','||'''yz''';

select count(*)

into v_count

from t

where object_name in(v_condition);

dbms_output.put_line(v_count);

v_sql:='select count(*) from t where object_name in ('||v_condition||')';

dbms_output.put_line(v_sql);

end;

declare

v_condition varchar2(100);

v_sql varchar2(1000);

v_count number(10);

begin

v_condition :='''xy'''||','||'''yz''';

v_sql:='select count(*) from t where object_name in ('||v_condition||')';

execute immediate v_sql into v_count;

dbms_output.put_line(v_count);

dbms_output.put_line(v_sql);

end;

可以使用正規表示式regexp_substr,將按指定分隔符組成的字串轉為中間查詢結果集,然後使用子查詢(in,exists)或者join解決where in list問題

nginx resin session問題解決

nginx resin 負載均衡 和防止其中一台宕機出現不可以 出現的問題 在使用者登入 時會出現兩台伺服器session不一致,一台有儲存,另一台沒儲存。解決方案 利用nginx upstream jvm route 解決 他不是共享,也不是同步,而是通過 cookie session來判別 到這...

Presentation Error問題解決

前兩天考試提交 出現了個presentation error,沒在意,以為 錯誤。今天做題時又不斷出現presentation error,上網查了查。具體原因以及改正方案如下 首先可以肯定的是,思路沒有錯,輸出結果也與標準輸出結果非!常!接!近!出現這個錯誤最可能的原因是,在輸出結果的後面,多了或...

題解 倒水問題

實現 題目背景 輸入輸出已更改,請不要直接提交原先的 題目描述 假定兩個水壺a和b,供水量不限。可以使用三種方法裝水 給乙個水壺裝水 把乙個水壺倒空 從乙個水壺倒進另乙個水壺。當從乙個水壺倒進另乙個水壺時,如果第乙個水壺倒空,或者第二個水壺裝滿就不能再倒了。例如,乙個水壺a是5加侖和另乙個水壺b是6...