gpt4 book ai didi

postgresql - 无法调用应返回文本值的 Postgresql 函数

转载 作者:行者123 更新时间:2023-11-29 12:03:46 25 4
gpt4 key购买 nike

我在使用 FireDAC 在 Delphi 中调用 Postgresql 函数时遇到了一个小问题。Postgresql 函数定义如下:

CREATE OR REPLACE FUNCTION public."pgpDecryptMe" (
todecode text
)
RETURNS text AS
$body$
DECLARE
PGPPrivate TEXT;
BEGIN
...

因此它需要一个“文本”值并返回一个“文本”值。我可以使用长文本参数(超过 900 个字符)调用它,它在任何 sql 管理工具中返回正确的值,没有任何问题。

select "pgpDecryptMe"('c1c04c030...a378624e6a659a20765') as Decrypt

但是在Delphi中用下面的代码调用它:

PGQuery.SQL.Text := 'select "pgpDecryptMe"(:test) as testvalue';
PGQuery.ParamByName('test').AsString := 'c1c04c030...a378624e6a659a20765';
PGQuery.Open();

给我以下错误信息:

[FireDAC][DatS]-2. Object [id] is not found

我在这里进行了谷歌搜索,但找不到任何解决问题的方法。这可能是我看不到的非常小的东西:-(

我正在使用 Delphi XE7 和 PostgreSQL 9.3

最佳答案

好的,现在我开始工作了。看起来它需要一个额外的索引字段名称,这实际上没有意义,因为它只返回一个值...

所以当我将我的代码更改为以下时它起作用了:

PGQuery.SQL.Text := 'select "pgpDecryptMe"(:test) as testvalue';
PGQuery.ParamByName('test').AsString := 'c1c04c030...a378624e6a659a20765';
PGQuery.IndexFieldNames := 'testvalue';
PGQuery.Open();

关于postgresql - 无法调用应返回文本值的 Postgresql 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39341966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com