oracle数组 拼到sql的in子句中去
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数组 拼到sql的in子句中去相关的知识,希望对你有一定的参考价值。
需要创建一个split函数来实现,具体如下:CREATE function [dbo].[split](@aString varchar(8000),@pattern varchar(10))
returns @temp table([Sid] [int] IDENTITY (1, 1) NOT NULL ,a varchar(100))
--实现split功能 的函数
--说明:@aString,字符串,如a:b:c;@pattern,分隔标志,如 :
as
begin
declare @i int
set @aString=rtrim(ltrim(@aString))
set @i=charindex(@pattern,@aString)
while @i>=1
begin
insert @temp values(left(@aString,@i-1))
set @aString=substring(@aString,@i+1,len(@aString)-@i)
set @i=charindex(@pattern,@aString)
end
if @aString<>\'\'
insert @temp values(@aString)
return
end 参考技术A 处理oracle sql 语句in子句中(where id in (1, 2, ..., 1000, 1001)),如果子句中超过1000项就会报错。
这主要是oracle考虑性能问题做的限制。如果要解决次问题,可以用 where id (1, 2, ..., 1000) or id (1001, ...)
oracle数组 拼到sql的in子句中去,比如String st=“A,B,G,H”这个字符串
逗号分割,拼到SQL语句中的in子句中怎么做?
参考技术A 1.把string
split构成一个虚拟表
提示:用
正则表达式
+
connect
by递归
+
regexp_substr
或者
substr
/
instr
2.
用这个虚拟表与原表进行关联
以上是关于oracle数组 拼到sql的in子句中去的主要内容,如果未能解决你的问题,请参考以下文章