не понимаю почему фунцция на pl/pgsql вызывает ошибку..

AdminGorkyRu

Новичок
не понимаю почему фунцция на pl/pgsql вызывает ошибку..

Всем здраствуйте..

Я недавно начал с pl/pgsql разбираться... нужно написать функцию у которой на входе (varchar, anyarray, anyarray)
PHP:
DECLARE
 qu_opt ALIAS FOR $2;
 opt_wh ALIAS FOR $3;
 i integer;
BEGIN
 i:=0;
 INSERT INTO users_qu.qualify (qualify_id,value) VALUES (nextval('users_qu.inc_id_qua'),$1);
 WHILE NOT qu_opt[i] LOOP
 INSERT INTO users_qu.perechen (perechen_id,qualify_id,value,width) VALUES (nextval('users_qu.inc_id_per'),curval('users_qu.inc_id_qua'),qu_opt[i],opt_wh[i]);  
  i:=i+1;
 END LOOP;
 RETURN 1;
END;
При обращении к ф-ии SELECT users_qu.add_qualify("Наличие сертефиката",ARRAY['Есть','Нет'],ARRAY[0,1]) сервер возвращает ошибку:
"SQL error:
ERROR: column "Наличие сертефиката" does not exist

In statement:
SELECT users_qu.add_qualify("Наличие сертефиката",ARRAY['Есть','Нет'],ARRAY[0,1])"

... ткните носом на ошибку пожайлуста... работу сдать надо.. а я туплю.. :(..
Заранее спасибо!

З.Ы. Забыл структуру
PHP:
CREATE TABLE qualify (
    qualify_id integer DEFAULT nextval('inc_id_qua'::text) NOT NULL,
    value character varying(255)
);


--
-- Data for Name: qualify; Type: TABLE DATA; Schema: users_qu; Owner: lsd
--

COPY qualify (qualify_id, value) FROM stdin;
1	C# programming
2	C++ programming
\.


--
-- Name: qualify_pkey; Type: CONSTRAINT; Schema: users_qu; Owner: lsd
--

ALTER TABLE ONLY qualify
    ADD CONSTRAINT qualify_pkey PRIMARY KEY (qualify_id);


--
-- Name: qualify; Type: TABLE; Schema: users_qu; Owner: lsd
--

ALTER TABLE users_qu.qualify OWNER TO lsd;

--
-- PostgreSQL database dump complete
--

CREATE TABLE perechen (
    qualify_id integer NOT NULL,
    value character varying(255),
    width integer,
    perechen_id integer DEFAULT nextval('inc_id_per'::text) NOT NULL
);


--
-- Data for Name: perechen; Type: TABLE DATA; Schema: users_qu; Owner: lsd
--

COPY perechen (qualify_id, value, width, perechen_id) FROM stdin;
1	from 1 till 5	2	2
1	more then 5	3	3
2	less then 1	1	4
2	from 1 till 5	2	5
2	more then 5	3	6
1	less 1	1	1
2	More then 10	7	8
\.


--
-- Name: perechen_pkey; Type: CONSTRAINT; Schema: users_qu; Owner: lsd
--

ALTER TABLE ONLY perechen
    ADD CONSTRAINT perechen_pkey PRIMARY KEY (perechen_id);


--
-- Name: qualify_FK; Type: FK CONSTRAINT; Schema: users_qu; Owner: lsd
--

ALTER TABLE ONLY perechen
    ADD CONSTRAINT "qualify_FK" FOREIGN KEY (qualify_id) REFERENCES qualify(qualify_id);


--
-- Name: perechen; Type: TABLE; Schema: users_qu; Owner: lsd
--

ALTER TABLE users_qu.perechen OWNER TO lsd;

--
-- PostgreSQL database dump complete
--
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Re: не понимаю почему фунцция на pl/pgsql вызывает ошибку..

Автор оригинала: AdminGorkyRu

In statement:
SELECT users_qu.add_qualify("Наличие сертефиката",ARRAY['Есть','Нет'],ARRAY[0,1])"

... ткните носом на ошибку пожайлуста... работу сдать надо.. а я туплю.. :(..
Тупишь ты изрядно. Строки в SQL берутся в одинарные кавычки, в двойные берутся разнообразные названия.
 

AdminGorkyRu

Новичок
Re: Re: не понимаю почему фунцция на pl/pgsql вызывает ошибку..

Автор оригинала: Sad Spirit
Тупишь ты изрядно. Строки в SQL берутся в одинарные кавычки, в двойные берутся разнообразные названия.
я и так пробовал.. результат:
SQL error:
ERROR: function users_qu.add_qualify("unknown", text[], integer[]) does not exist
HINT: No function matches the given name and argument types. You may need to add explicit type casts.
 
Сверху