как отловить ошибку в функции?

InventOR^ULG
Дата: 13.05.2004 12:06:56
имеем:

CREATE OR REPLACE FUNCTION takebalance( VARCHAR ) RETURNS VARCHAR AS '
DECLARE
called ALIAS $1;
return_string VARCHAR;
balance balance.balance%TYPE;
BEGIN
return_string := \'h323-credit-amount=\';
SELECT INTO balance bal.balance FROM clientsh323 as cli, balance as bal
WHERE ((cli.clientid = bal.clientid) AND (cli.callingstationid = \'$1\'));
RETURN return_string || balance::VARCHAR;
END;
' LANGUAGE 'plpgsql';

выполняем запрос: SELECT takebalance('2600515');

в результате получаем:
Ошибка SQL:
ERROR: parser: parse error at or near "$1" at character 44

В операторе:
SELECT voiptaketime('2600515') as atribute;


в системе в логах ругается на: ERROR: syntax error at or near "$1"
WARNING: plpgsql: ERROR during compile of takebalance near line 3


сам запрос без INTO balance в SQL редакторе возвращает numeric значение... ткните пальцем где я неправ, а то уже замучался без примеров извращаться......

-----
Two beer, or not two beer? (c)ShakesBeer..
Драга
Дата: 13.05.2004 13:16:16
...
called ALIAS FOR $1;
...
InventOR^ULG
Дата: 13.05.2004 13:21:49
Все равно ошибка не исчезла:
Ошибка SQL:
ERROR: parser: parse error at or near "$1" at character 44


В операторе:
SELECT takebalance('2600515');
InventOR^ULG
Дата: 13.05.2004 13:29:43
в логе ошибка сменилась :)
ERROR: parser: parse error at or near "$1" at character 44
WARNING: Error occurred while executing PL/pgSQL function takebalance
WARNING: line 7 at select into variables
OAN
Дата: 14.05.2004 17:30:41
поменяй
WHERE ((cli.clientid = bal.clientid) AND (cli.callingstationid = \'$1\'));
на
WHERE ((cli.clientid = bal.clientid) AND (cli.callingstationid = \'called\'));