create or replace function find_in_set(str text,strlist text)
return int as
declareretv int;
len1 int;
arrlen int;
coun int;
tempstr text;
temparr text[];
begin
if strlist is null or strlist=''
then return 0;
end if;
temparr=string_to_array(strlist, ',');
arrlen=array_length(temparr,1);
raise notice 'arrlen=%',arrlen;
coun=1;
loop if coun>arrlen then exit;
end if;
if str=temparr[coun] then return coun;
end if;
coun=coun+1;
end loop;
return 0;
end;
创建函数
CREATE OR REPLACE INTERNAL FUNCTION PUBLIC.FIND_IN_SET(CHARACTER VARYING, CHARACTER VARYING)
RETURNS CHARACTER VARYING
LANGUAGE PLSQL
IMMUTABLE STRICT
AS $function$
DECLARE
tokens varchar[];
BEGIN
tokens := sys_catalog.string_to_array($2, ',');
RETURN ISNULL(sys_catalog.array_position(tokens, $1),0) > 0;
END;
$function$;
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!