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 )