Существует база данных на MSSQL ее нужно перевести в Postgres. С переводом таблиц не было проблем, а вот с фунциями возникли проблемы. Вот код функции на MSSQL:
ALTER FUNCTION [dbo].[SupplierDebt]
(
@SupplierID int
)
RETURNS float
AS
BEGIN
Declare @Sum float;
Select @Sum = sum([Sum]) FROM SuppliersDebt WHERE
SupplierID = @SupplierID
IF @Sum IS NULL RETURN 0;
RETURN @Sum;
END
а вот я примерно пытался написать на Postgres:
create or replace function SuppliersDebt(mSupplierID int) RETURNS FLOAT AS $$
DECLARE Summ float;
BEGIN
SELECT Summ = Sum(Sum)
FROM SuppliersDebt where
SupplierID = mSuplierID
if Summ IS NULL then return 0;
else return Summ; end if;
end; $$
language 'plpgsql';
Просьба указать на ошибки. И как удостоверится что она работает правильно. С помощью select не получается проверить
На ошибки вам укажет сам
На ошибки вам укажет сам PostgreSQL при запуске функции
Почему не получается проверить с помощью SELECT?
На ошибки он не указывает при
На ошибки он не указывает при сохронение. Но когда запускаешь он же по сути должен выводить сумму по столбцу. а там нужно вводить значение.
Ну так вводите, в чём
Ну так вводите, в чём проблема-то? Например
=# select
=# select SuppliersDebt(10);
ERROR: query has no destination for result data
ПОДСКАЗКА: If you want to discard the results of a SELECT, use PERFORM instead.
КОНТЕКСТ: PL/pgSQL function "suppliersdebt" line 4 at SQL statement
Ну и?
Что непонятно в сообщении об ошибке?
Вы документацию читали на PL/pgSQL? Если бы читали, то увидели бы в одном из примеров
Т.е. результат запроса заносится в переменную t2_row, а куда он заносится у вас?