В девелопменте нет никто, поэтому пишу сюда.
Сваял функцию для постгреса. Вроде все правильно, а все равно ошибку выдает.
CREATE OR REPLACE FUNCTION zone_import (i_begins int, i_ends int, i_code char(2), i_country varchar(255), i_region varchar(255), i_city varchar(255)) RETURNS int AS $$
DECLARE
country_id int;
region_id int;
city_id int;
BEGIN
SELECT id FROM countries INTO country_id WHERE code=i_code;
IF country_id IS NULL THEN
INSERT INTO countries (name, code) VALUES (i_country, i_code);
country_id := currval(countries_id_seq);
END IF;
SELECT id FROM regions INTO region_id WHERE name=i_region;
IF region_id IS NULL THEN
INSERT INTO regions (country_id, name) VALUES (country_id, i_region);
region_id := currval(regions_id_seq);
END IF;
SELECT id FROM cities INTO city_id WHERE name=i_city;
IF city_id IS NULL THEN
INSERT INTO cities (region_id, name) VALUES (region_id, i_city);
city_id := currval(cities_id_seq);
END IF;
INSERT INTO zones (begins, ends, city_id) VALUES (i_begins, i_ends, city_id);
RETURN 1;
END; $$
LANGUAGE plpgsql;
Текст ошибки:
ERROR: ошибка синтаксиса в или рядом "$1"
LINE 1: INSERT INTO regions ( $1 , name) VALUES ( $1 , $2 )
^
QUERY: INSERT INTO regions ( $1 , name) VALUES ( $1 , $2 )
CONTEXT: SQL statement in PL/PgSQL function "zone_import" near line 14
Нифиво не понимаю (ц). Мож вы подскажете, где косяк?
Перемещено JB из Talks