こんにちは私は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よりもはるかに理解しやすいためです。
どんな助けでも大歓迎です!