2016-12-17 2 views
0

Учитывая следующие Postgresql дня:функция NpgSql Вызов/рутина

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 ,"[email protected]"); 
        var ret = (bool)cmd.ExecuteScalar(); 
        return ret; 
       } 
      } 
     } 

я получаю следующее сообщение об ошибке

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

Я полный новичок в постгресах, и я не очень успешно нахожу соответствующий поиск ответа.

Не могли бы вы помочь мне понять, почему эту функцию невозможно найти, когда я пытаюсь назвать ее?

ВЫБЕРИТЕ версию();

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

Спасибо!

ответ

3

Welp ... Case Sensitive - это фраза дня.

emailAddress! = Адрес электронной почты