用clob执行语句?

时间:2019-07-03 12:30:54

标签: python cx-oracle clob

两个查询:

第一个为:

with table_1 as ( select 'Item '||level item_name, level lvl from dual connect by level <= 10000 ) select * from table_1 where lvl in (1,2,3,4,5,6,7,....,997,998,999,1000)

另一个为:

with table_1 as ( select 'Item '||level item_name, level lvl from dual connect by level <= 10000 ) select * from table_1 where lvl in (1,2,3,4,5,6,7,....,1997,1998,1999,2000)

我可以在cx-oracle中运行第一个查询,但不能运行第二个查询。我知道第二个的大小不同,LOB / CLOB的概念也正在发挥作用,但是我不确定如何在这里使用它。

我可以创建一个CLOB并执行查询吗?还是我认为这是错误的?

1 个答案:

答案 0 :(得分:0)

在“ IN”条件下可以输入的值不能超过1000。它记录在下面: https://docs.oracle.com/database/121/SQLRF/conditions014.htm

  

您可以在expression_list中最多指定1000个表达式。

如果需要更多内容,则需要将这些值放在表中并执行以下操作:

select ... where lvl in (select lvl from lvl_table)

但是我会问您为什么要使用IN?您的列表看起来像是连续的数字列表,如果准确,则可以简单地使用

where level <= 10000

或使用“之间”或大于,小于“或”的任何组合。