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

时间:2016-02-11 03:24:04

标签: postgresql encryption

好的,问题是我在我的数据库上做了一个登录控制器。部分原因是这个函数可以创建如下所示的用户:

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中测试了它。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Looking up错误编号清楚地告诉您,找不到函数encrypt()。

可能

  • encrypt()函数由您忘记在该数据库上安装的扩展程序提供(通过CREATE EXTENSION
  • 如果encrypt()是自定义函数,可能需要先运行其他一些脚本,然后才能在此函数之前创建该函数。