Здравствуйте. Я только изучаю 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;
Я перечитал документы, в которых указано, как это сделать, но каждый раз, когда я пытаюсь создать функцию из редактора sql в pgAdmin, я получаю следующую ошибку:
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.
Любая помощь будет принята с благодарностью!