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 的新手,我在搜索相关答案时不是很成功。
你能帮我理解一下为什么我调用这个函数找不到吗?
SELECT 版本();
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
谢谢!
好吧...区分大小写是今天的短语。
电子邮件地址 != 电子邮件地址
PostgresException: 42883: 函数 checkemailexists(emailAddress => text) 不存在
ANS=>Postgre 区分大小写,因此请始终检查正确的函数名称和参数名称
给定以下 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 的新手,我在搜索相关答案时不是很成功。
你能帮我理解一下为什么我调用这个函数找不到吗?
SELECT 版本();
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
谢谢!
好吧...区分大小写是今天的短语。
电子邮件地址 != 电子邮件地址
PostgresException: 42883: 函数 checkemailexists(emailAddress => text) 不存在
ANS=>Postgre 区分大小写,因此请始终检查正确的函数名称和参数名称