ORA-01795:列表中的最大表达式数为1000,如何拆分字符串

如何拆分以下字符串?

Ax IN (changeList), 

changeList具有以下值,因此它使得子句如下:

  Ax IN (HEXTORAW('1E2956B9266F11DDA85810000000C959'),HEXTORAW ('ADD834AD6A3911DF923C10000000C959'),HEX........... 

上面的IN有超过1000个值,因此ORA-01795错误,如何修改它以便我拥有

AX IN(id1,.. id999)或Ax IN(id1000,…),任何c代码都可以帮助我……

您必须编写一个循环,以块的forms执行SQL,每个循环包含1000个条目。

或者,您可以将值插入表中,然后使用IN子句执行子选择,因为使用子选择,1000条目的限制不适用。 仅当您使用带有硬编码值字符串的SQL时,才会出现此限制。

像这样的东西:

 select * from mytable t where t.column1 = value and t.column2 in ( select my_values from my_temp_table )