您好,我只是在学习 postGIS,因此正在学习 postgresql (9.1),并试图通过创建一个 sql 函数来重新投影一些空间数据,从而节省一些时间来一遍又一遍地复制相同的代码。
Create Function reproject_shapefile(text,text,numeric) returns void as $$
-- Reprojects shapefiles given that they follow the pattern "gid * the_geom"
CREATE TABLE $2 AS
SELECT *, ST_Transform(the_geom,$3) AS the_geom2
FROM $1;
Alter table $2 add Primary Key (gid);
Alter table $2 drop column the_geom;
Alter table $2 rename column the_geom2 to the_geom;
$$ Language SQL;
我阅读了指定如何执行此操作的文档,但每次尝试从 pgAdmin 中的 sql 编辑器创建函数时,都会收到以下错误:
ERROR: syntax error at or near "$2"
LINE 5: CREATE TABLE $2 AS
^
********** Error **********
ERROR: syntax error at or near "$2"
SQL state: 42601
Character: 175
与 python 中的错误消息不同,这告诉我绝对没有任何用处,所以我希望有人能指出我如何解决这个错误的正确方向。
如果有某种方法可以使用 python 执行相同的功能,请随时将其作为解决方案发布,因为 python 语法比古代 SQL 更容易理解。
任何帮助将不胜感激!