如何解决Postgres unnest with points
我正在尝试编写一个 PL/PGSQL 函数,该函数将分隔文本作为输入并将行插入包含点的表中。我有一个可以正常工作的测试函数:
rowsaz := string_to_array(input,'?');
INSERT INTO test (num1,num2,my_name)
SELECT * FROM unnest(string_to_array(rowsaz[1],',')::integer[],string_to_array(rowsaz[2],string_to_array(rowsaz[3],')::varchar[]);
return true;
所以如果你用
调用函数SELECT myfunction('1,2,3?4,5,6?a,b,c')
然后你会得到一张像
1 4 a
2 5 b
3 6 c
但是当你有一张像这样的桌子时你怎么做
CREATE TABLE public.gps_points
(
id integer NOT NULL DEFAULT nextval('gps_id_seq'::regclass),location geometry(Point,4326),created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP,user_id integer
)
插入看起来像 INSERT INTO gps_points (location,user_id) VALUES (ST_GeomFromText('POINT(-71.060316 48.432044)',2);
但这对于 unnest 会变得棘手,因为您必须将坐标传递给 ST_POINT 函数。然后我会调用函数: SELECT myfunction('36.98,36.99,36.97?45.85,45.86,45.87?1,3')
我正在尝试执行以下操作,但不起作用
insert into gps_points( geom,user_id)
select unnest( (ST_GeomFromText('POINT(string_to_array(rowsaz[1],')::double precision[] string_to_array(rowsaz[2],')::double precision[])',')::double precision[]));
解决方法
有人帮我搞定了:
class Dash extends StatefulWidget { ...
class _DashState extends State<Dash> { ...
@override
void initState(){ ...
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),drawer: MyDrawer(),body: Container(
... ),
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。