I assume that there is a physical Oracle table that sees insert/update events as the REST service fires.
And that those events aren't a complete truncate/reload.
If so I would create a before insert/update trigger and construct an sde.st_geometry object from the X,y columns. No indexes should exist before the initial load; create them after the load. As ...
Number 1 will have least overhead. Based on map extent used most often set smallest grid slightly smaller than this map extent zoomed to. Set next middle grid 3 times this value. Set largest grid three times the middle grid value. This works like a spatial index explained here:
The 000210 error is principally caused by two potential errors:
The table name is not valid (often a reserved word)
One or more of the columns are not valid (reserved word or too many characters)
The ArcSDE communication library has constants which limit table and column
name buffers to 32 bytes (31 characters, plus a closing terminator).
Oracle itself ...
I have seen some application software, like TOAD, display Oracle VARRAYs in ways like this.
The SDO_GEOMETRY may be fine which is why I suggest querying it for sdo_util.GetNumVertices (tests sdo_ordinate_array)and sdo_util.getNumElem() (tests sdo_elem_info_array)
See my answer to your other thread here:
I have access to Oracle not ESRI so I can't help with all aspects.
The WKT looks fine, though the space after the first ( is normally not there.
Try using the sdo_geometry(WKT,srid) constructor supplying the SRID rather than the sdo_util function.
Take the WKT as a string and directly constructed the SDO_GEOMETRY with it rather than using st_astext, this ...
TOAD writes out the meta data of Oracles ST_GEOMETRY UDT implementation for ESRIs SDE; it's essentially a list of geometric predicates describing the geometry, and the vertex array that builds the geometry type, held as BLOB:
<ENTITY>, -- geometry type (POINT, LINESTRING, ...)
<NUMPTS>, -- number of points