For _Record_piket in (SELECT public.excav_line.piket FROM public.excav_line
WHERE public.excav_line.id_smena in (ggg)
and public.excav_line.id_excav=2)
Мне нужно чтоб запрос получился in (135,134), а 135,134 в переменной типа техт я получил переменную _ggg c таким значением, но public.excav_line.id_smena типа integer
For _Record_piket in (SELECT public.excav_line.piket FROM public.excav_line
WHERE public.excav_line.id_smena in (135,134)
and public.excav_line.id_excav=2)
loop
....
End loop;
Можно сделать так FOR
Можно сделать так
ERROR: ПРЕТБФПТ ОЕ
ERROR: ПРЕТБФПТ ОЕ УХЭЕУФЧХЕФ: integer = text
LINE 1: ...ublic.excav_line WHERE public.excav_line.id_smena = any (Str...
^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Понимаете WHERE public.excav_line.id_smena это integer а в переменной уже есть "135,136" text
а вот так можно почему то не работает
sql_insert:=' SELECT * FROM public.excav_line WHERE public.excav_line.id_smena in (' ||_srt_sm_day|| ') AND public.excav_line.id_excav=' ||_Record.id_excav;
For _record_piket in EXECUTE sql_insert
Loop
_piket:='';
_flag:=True;
If _flag Then
_piket:=_Record_piket.piket;
_Flag:=false;
else
_piket:=_piket||', '||_Record_piket.piket;
End if;
End Loop;
Сделал как тут все работает.
Сделал как тут все работает. себе спасибо