From my research, this is not a limitation of the express version. Its a limitation of VARCHAR. ST_GEOMETRY appears to accept a CLOB object, anybody know how i can "clobber" the POLYGON part of the insert statement?
INSERT INTO tt1 values(0, cast('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))' as clob) );
The ST_Geometry type also supports multiple constructor methods. There is one that accepts a varchar and one that accepts a clob, so you can use either of the following two statements.
INSERT INTO tt1 values(0, new ST_Geometry('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))'));
INSERT INTO tt1 values(0, new ST_Geometry(cast('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))' as clob)) );
The constructor methods also accept WKB via VARBYTE or BLOB.
There is also the ST_GeomFromText UDF that you can use to insert geometry data. You can insert either WKT in varchar or clob or WKB in varbyte or blob form.
For client interaction, the ST_Geometry UDT supports ToSQL and FromSQL transforms in CLOB format, representing the WKT format. If you have a JDBC or ODBC program, you would insert CLOBs into the ST_Geometry object.
All of the above statements work. I tried them out.