第二次遇到这个问题了,花了很长时间才搞定,记不住.好记性不如烂笔头,特此记录.
42883: function test(ioid => bigint,idescribe => text) does not exist
发生这个错误的原因是创建函数后,PostgreSQL将函数名和参数名自动转换为小写.当Npgsql调用这个函数时,函数名不区分大小写,但是参数名区分大小写.
--函数原型
function test(iOId bigint,iDescribe text)
iOId在iDescribe函数原型中是有大小写的,但是创建后自动转换为小写,Npgsql调用时再用大小写参数名时报错
cmd.Parameters.Add("iOId ", NpgsqlDbType.Bigint).Value = 1;
cmd.Parameters.Add("iDescribe", NpgsqlDbType.Text).Value = 'test';
42883: function test(ioid => bigint,idescribe => text) does not exist
正确的方法在Npgsql中参数名全部小写
cmd.Parameters.Add("ioid ", NpgsqlDbType.Bigint).Value = 1;
cmd.Parameters.Add("idescribe", NpgsqlDbType.Text).Value = 'test';

本文介绍了一个常见的PostgreSQL函数调用错误:42883:error:functiontest(ioid=>bigint,idescribe=>text)doesnotexist。详细解释了错误原因,并给出了解决方案,即确保Npgsql调用函数时所有参数名均为小写。

1181

被折叠的 条评论
为什么被折叠?



