PostgreSQL, функцию используете? - PullRequest
3 голосов
/ 17 ноября 2011

У меня есть такая функция:

CREATE OR REPLACE FUNCTION f_insert_account(usernames character varying, passwds  
character varying, identitass integer, jeniss smallint, statuss smallint, cnames 
character varying, unames character varying)
RETURNS character varying AS
$BODY$
DECLARE
iduserx int4;
usernamex varchar;
er int2:=0;
pesan varchar:='';
BEGIN
insert into t_account(username,passwd,identitas,jenis,status,cname,uname)
values(usernamex,f_encr(passwds),identitass,jeniss,statuss,cnames,unames);
RETURN pesan;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION f_insert_account(usernames character varying, passwds character 
varying, identitass integer, jeniss smallint, statuss smallint, cnames character 
varying, unames character varying) OWNER TO postgres;

GRANT EXECUTE ON FUNCTION f_insert_account(usernames character varying, passwds 
character varying, identitass integer, jeniss smallint, statuss smallint, cnames  
character varying, unames character varying) TO public;

GRANT EXECUTE ON FUNCTION f_insert_account(usernames character varying, passwds 
character varying, identitass integer, jeniss smallint, statuss smallint, cnames   
character varying, unames character varying) TO postgres;

тогда я использую это так:

select f_insert_account('dayat', 'dayat', 1, 1, 1, 'cname', 'uname')

Ошибка, как эта, всегда появляется: ОШИБКА: функция f_insert_account («неизвестно», «неизвестно», целое, целое, целое, «неизвестно», «неизвестно») не существует Состояние SQL: 42883 Подсказка: ни одна функция не соответствует заданному имени и типу аргумента. Возможно, вам придется добавить явные приведения типов. Символ: 8

почему это ???

спасибо

Dayat

1 Ответ

9 голосов
/ 17 ноября 2011

Тип данных smallint немного сложен, так как вам нужно привести их:

select f_insert_account('dayat', 'dayat', 1, 1::smallint, 1::smallint, 'cname', 'uname')

Если вы хотите избежать этого, я предлагаю изменить определение вашей функции, чтобы использовать обычный старый integer типы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...