Postgresql 42883 带有加密功能的错误代码



好的,问题是我正在我的数据库上做一个登录控制器。其中一部分是创建用户的函数

,如下所示:
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 () 是自定义函数,则可能需要先运行一些其他脚本,以便在该函数之前创建该函数。

最新更新