2017-02-21 10 views
0

я создал следующую функцию для проверки клиентов в моей базе данных:кавычки проблемы в вызове функции

create or replace function altaClient(p_nombre cliente.nombre%type,p_repcod cliente.repcod%type,p_limcred cliente.limcred%type) 
RETURNS varchar as $$ 
declare 

begin 
    if p_nombre in (select nombre from cliente) THEN 
     RAISE 'El cliente ya está registrado'; 
    end if; 

    insert into cliente (cliecod,nombre,repcod,limcred) 
    values (nextval('cliecod'),p_nombre,p_repcod,p_limcred); 
    return 'El cliente se ha dado de alta correctamente'; 

    if p_repcod not in (select * from cliente where repcod=p_repcod) THEN 
     RAISE 'El representant no existeix'; 
    end if; 
end; 
$$ LANGUAGE plpgsql; 

Но когда я пытаюсь использовать его я получаю эту ошибку:

training=> select altaClient("Samuel S.A",101,20000.2); 
ERROR: column "Samuel S.A" does not exist 
LINE 1: select altaClient("Samuel S.A",101,20000.2); 

Любая идея, что в ошибка означает? Я читал немного, и мне кажется, что я должен использовать execute в функции, но я не уверен.

+0

Вы забыли объявить свою версию Postgres. –

ответ

0

В PostgreSQL существует разница между «и». »Используется для определения чувствительности к регистру объектов (таблиц, полей и т. Д.). Пожалуйста, поменяйте ваш запрос на:

select altaClient('Samuel S.A',101,20000.2); 
Смежные вопросы