`

oracle in list 问题解析

 
阅读更多

解决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问题

分享到:
评论

相关推荐

    [数据库]处理 Oracle SQL in 超过1000 的解决方案.txt

    在Oracle数据库中,当我们需要使用SQL的IN子句来匹配一个包含超过1000个值的列表时,会遇到一个问题:Oracle默认限制了IN子句中的元素数量不能超过1000个。这主要是为了防止SQL语句变得过于复杂以及提高执行效率。...

    《剑破冰山__Oracle开发艺术_》高清PDF

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫淡、管道函数的学习与实战应用、巧用锁特性避免...

    剑破冰山++Oracle开发艺术[1].part10

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    Oracle中(column1,column2..)in(集合/子查询)的hibernate实现

    例如,`eq`方法用于创建等于某个值的条件,`inList`方法则可以用来创建`IN`操作符的条件。 ```java DetachedCriteria subQuery = DetachedCriteria.forClass(SomeTable.class) .setProjection(Property.forName(...

    剑破冰山++Oracle开发艺术[1].part01

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    剑破冰山++Oracle开发艺术[1].part07

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    剑破冰山++Oracle开发艺术[1].part04

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    剑破冰山++Oracle开发艺术[1].part02

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    剑破冰山++Oracle开发艺术[1].part03

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    剑破冰山++Oracle开发艺术[1].part08

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    剑破冰山++Oracle开发艺术[1].part06

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    剑破冰山++Oracle开发艺术[1].part05

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    剑破冰山++Oracle开发艺术[1].part09

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    剑破冰山 Oracle开发艺术.part2.rar

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    oracle的update的五种方式

    本文将详细介绍 Oracle 更新语句的五种方式,并对每种方式的优缺点进行分析。 一、标准 Update 语句 标准 Update 语句是 Oracle 中最基本的更新语句,语法为:`UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某...

    oracle_split_函数_返回数组

    CREATE OR REPLACE FUNCTION LW.STR_SPLIT(P_LIST IN VARCHAR2,P_SEP IN VARCHAR2) RETURN T_VARRAY IS ... BEGIN ... END LW.STR_SPLIT; ``` 这两种方法在处理不同情况下的字符串分割时可能有不同的效果。例如,...

    剑破冰山 Oracle开发艺术.part1.rar(共3part)

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    剑破冰山 Oracle开发艺术.part3.rar (共3part)

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    oracle调用webservice接口地址demo

    ### Oracle调用WebService接口地址Demo解析 #### 一、引言 在企业级应用开发中,不同系统间的集成与通信尤为重要。Oracle数据库作为一款广泛使用的数据库管理系统,支持多种方式与其他系统进行交互,其中通过调用...

    plsql不能连接linux下oracle问题ORA-12514.doc

    listener.ora 文件是Oracle数据库的监听器配置文件,located in $ORACLE_HOME/network/admin directory。在Linux环境下,需要修改该文件,以便PL/SQL能够连接到Oracle数据库。 listener.ora 文件的默认内容如下所...

Global site tag (gtag.js) - Google Analytics