我正在尝试使用 Django Pgcrypto Extensions 库。
该库似乎安装良好并且位于我的站点包中。
但是,我尝试运行给定的命令来查询我的数据库并将运行 PGCrypto 解密函数,但出现此错误:
function pgp_sym_decrypt(character varying, unknown) does not exist
但是我检查我的 Postgresql 数据库以查看有哪些功能可用,并且我看到了以下内容:
nspname | proname | params
---------+-----------------------+-------------------
public | pgp_sym_encrypt | text, text
public | pgp_sym_encrypt_bytea | bytea, text
public | pgp_sym_encrypt | text, text, text
public | pgp_sym_encrypt_bytea | bytea, text, text
public | pgp_sym_decrypt | bytea, text
public | pgp_sym_decrypt_bytea | bytea, text
public | pgp_sym_decrypt | bytea, text, text
public | pgp_sym_decrypt_bytea | bytea, text, text
我在 Postgres 中创建了扩展(对于我特别想使用该扩展的数据库)等。
那么什么会导致这个错误呢?
是否有一些我没有执行的步骤或配置问题?据我所知,PGCrypto 已安装,函数在数据库中,并且在调用时应该可以工作。
最佳答案
您应该将加密数据存储到 bytea 列中,而不是文本列中。您也许可以将其从文本转换为 bytea:
pgp_sym_decrypt(area_code::bytea,'Password')
关于python - 没有函数与给定名称和参数类型匹配 - PGCrypto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34071773/