如何拆分以下字符串?
A.x IN (changeList),
changeList 具有以下值,因此它使子句如下所示:
A.x IN (HEXTORAW('1E2956B9266F11DDA85810000000C959'),HEXTORAW
('ADD834AD6A3911DF923C10000000C959'),HEX...........
上面的IN有超过1000个值,因此ORA-01795错误,如何修改它,以便我有
A.X IN (id1, ..id999) 或 A.x IN (id1000,...),任何 c 代码都会帮助我......
您必须编写一个循环,该循环以块的形式执行 SQL,每个块有 1000 个条目。
或者,您可以将值插入到表中,然后使用 IN
子句执行子选择,因为对于子选择,1000 个条目的限制不适用。仅当您使用具有硬编码值字符串的 SQL 时,才有此限制。
像这样:
select *
from mytable t
where t.column1 = value
and t.column2 in
(
select my_values
from my_temp_table
)