Poprawne wstawianie literałów w zapytaniach dynamicznych PL / PgSQL EXECUTE

Poniżej znajduje się część funkcji plpgsql. Problem polega na tym, że wyniksource_geom itarget_geom jestcharacter varying typ danych i dlatego muszę otoczyć obasource_geom itarget_geom w cudzysłowie („”). Rzecz w tym, że w języku plpgsql nie wiem, czy mogę to zrobić.
Oto, co mam w tej chwili:

 EXECUTE 'update ' || quote_ident(geom_table) || 
        ' SET source = ' || source_geom || 
        ', target = ' || target_geom ||
        ' WHERE ' || quote_ident(gid_cname) || ' =  ' || _r.id;

Błąd, który mam, jest następujący;

ERROR:  syntax error at or near "C03B9E3B66052D400DDEFC2BD0F24140"
LINE 1: ...pdate track_points SET source = 0101000020E6100000C03B9E3B66...
                                                             ^
QUERY:  update track_points SET source = 0101000020E6100000C03B9E3B66052D400DDEFC2BD0F24140, target = 0101000020E610000075690DEF83052D40F88E75CCD4F24140 WHERE ogc_fid =  2
CONTEXT:  PL/pgSQL function "create_network" line 26 at EXECUTE statement

Wszelkie sugestie, jak mogę rozwiązać ten problem.