python - 没有函数与给定名称和参数类型匹配 - PGCrypto

标签 python django postgresql

我正在尝试使用 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/

相关文章:

ruby-on-rails - Rails - 仅查找存在 has_many 关联记录的记录

python - 我应该创建映射器对象还是使用 SQLAlchemy 中的声明性语法?

python - Python如何将特定的字符串提取到多个变量中

python - 我将如何在 Python 中使用命令行参数提取特定字段和文本文件

django - 在 MVC(例如 Django)中,放置繁重逻辑的最佳位置是什么?

python - 检查模板失败,因为 "No templates used to render the response"

database - 带有外键的模型上的 restful api

python - sklearn.pipeline.Pipeline 到底是什么?

django - Django 模板中的新行

database - Postgres : Surprising performance on updates using cursor