好的,问题是我正在我的数据库上做一个登录控制器。其中一部分是创建用户的函数
,如下所示:create or replace function crear_usuario(par_usuario varchar,par_clave text,
par_nombre varchar,par_correo varchar) RETURNS integer AS $$
DECLARE
existe int;
clave_cript bytea;
llave text;
BEGIN
/* 0:Insertado con exito | 1:Usuario ya registrado*/
select into existe count(id) from usuarios where usuario=$1;
if existe=0 then
select into llave 'encrypt key';
select into clave_cript encrypt(llave,$2,'3des');
insert into usuarios (usuario,clave,nombre,correo) values ($1,clave_cript,$3,$4);
end if;
RETURN existe;
END;
$$ LANGUAGE plpgsql RETURNS NULL ON NULL INPUT ;
该错误显示在带有加密功能的行中,我在 cli 中自行测试了该功能。
有什么想法吗?
查找错误号清楚地告诉您找不到函数 encrypt
()。
有可能
- 该
encrypt
()函数由您忘记在该数据库上安装的扩展提供(通过CREATE EXTENSION
) - 如果
encrypt
() 是自定义函数,则可能需要先运行一些其他脚本,以便在该函数之前创建该函数。