我正在寻找一种从文本值转换的方法:
'(180,90),(-180,-90)'
到一个点[]值:
{"(180,90)","(-180,-90)"}
做这个的最好方式是什么?
我能想到的一种可能性是将字符串操作为这种形式:
'{"(180, 90)", "(-180,-90)"}'
然后我可以point[]
这样转换:
select '{"(180, 90)", "(-180,-90)"}'::point[];
肯定有更好的方法吗?我目前的解决方案是这样的:
select concat('{', replace(replace(<text>, '(', '"('), ')', ')"'), '}')::point[]
没有比你已经得到的更好,但是:
如果数组中的分隔符标记是其他东西(比如“;”),那么它就足够了:
编辑:
如果我做对了,您将有一个外部表,例如:
您可以通过 dblink 访问它。以下工作(我目前不能使用 DBLink)吗?