Hallo,
so hier erst mal die WKT-Lösung ohne Unterabfrage:
select *,
st_setsrid(
st_geomfromtext
(
array_to_string(
array_append(
array_append(
(string_to_array(ST_AsText(shape),','))[1:3],
substring((string_to_array(ST_AsText(shape),','))[5],
1,length((string_to_array(ST_AsText(shape),','))[5])-1))
,(string_to_array( substring(ST_AsText(shape),19),','))[1])
,',')
|| ')')
,25833) as sid_shape from fremdtabelle
Schön bzw. übersichtlich sieht anders aus
. Einer Unterabfrage würde das Ganze vereinfachen - ich habe es aber im Moment noch nicht so richtig mit Unterabfragen, da diese in MSAccess recht wenig performant waren.
@Uwe:
Die Überführung des Circularstrings in einen Linstring und zurück überlasse ich den geneigten Leser zur Übung > 
Das würde bei mir dann so aussehen:
select *,
st_setsrid(st_geomfromtext('CIRCULARSTRING Z' ||
substr(ST_AsText(st_addpoint(st_removepoint(t1.geom, 3), st_startpoint(t1.geom))),14)) ,25833) as sid_shape
from (select *, st_geomfromtext(
'linestring Z' || substr(ST_AsText(shape),17)
) as geom from fremdtabelle) t1
Muss jetzt mal schauen, wie die Geschwindigkeiten der beiden Varianten sind.
[EDIT]Variante 1 ist doch um ca. 30% schneller. Da werde ich wohl doch auf die unübersichtliche Variante setzen.[/EDIT]
**[EDIT2]**Diese Variante ist dann doch die Schnellste:
select *,
st_setsrid( st_geomfromtext('CIRCULARSTRING Z' ||
substr(ST_AsText(st_addpoint(st_removepoint(
st_geomfromtext('linestring Z' || substr(ST_AsText(shape),17) ), 3),
st_startpoint(st_geomfromtext('linestring Z' || substr(ST_AsText(shape),17) )
))),14)
),25833) as sid_shape
from fremdtabelle
[/EDIT2]
Vielen Dank für eure Hilfen!!
Gruß Steffen