繁体   English   中英

NpgSql 调用函数/例程

[英]NpgSql Call function / routine

给定以下 Postgresql 例程:

CREATE OR REPLACE FUNCTION checkemailexists (emailaddress text) RETURNS boolean
    LANGUAGE plpgsql
AS $$
#print_strict_params on
DECLARE
existsCount int;
BEGIN
    SELECT count(*) INTO STRICT existsCount
        FROM usercontacts WHERE usercontacts.contactaddress = emailAddress;
    IF existsCount > 0 THEN RETURN TRUE;
    ELSE RETURN FALSE;
    END IF;
END
$$

以及以下 .NET (Npgsql) 块:

 public bool EmailExists(string email)
        {
            using (var conn = Connection)
            {
                conn.Open();
                using(var tran = conn.BeginTransaction())
                using (var cmd = new NpgsqlCommand("checkemailexists", conn))
                {
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@emailAddress",NpgsqlTypes.NpgsqlDbType.Text ,"my@email.com");
                    var ret = (bool)cmd.ExecuteScalar();
                    return ret;
                }
            }
        }

我不断收到以下错误

PostgresException: 42883: function checkemailexists(emailAddress => text) does not exist

我是 postgres 的新手,我在找到相关答案搜索方面并不是很成功。

你能帮我理解为什么当我尝试调用它时找不到这个函数吗?

选择版本();

PostgreSQL 9.5.5 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.3.1-14ubuntu2) 5.3.1 20160413, 64-bit

.NET 核心

Npgsql 3.1.9

谢谢!

Welp... 区分大小写是当今的短语。

电子邮件地址 != 电子邮件地址

PostgresException: 42883: 函数 checkemailexists(emailAddress => text) 不存在

ANS=>Postgre 区分大小写,因此请始终检查正确的函数名称和参数名称

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM