prec integer, scale integer)
                  
                  
                   RETURNS numeric
                  
                  
                   LANGUAGE sql
                  
                  
                   IMMUTABLE STRICT
                  
                  
                  AS $function$ SELECT cast($1 AS DECIMAL($2, $3)); $function$
                  
                  
                  ;
                  
                  
                  
                  
                  
                  COMMENT ON FUNCTION db2."dec"(anyelement,int4,int4) IS 'cast to decimal';
                  
                  
                  
                  
                  
                  
                  
                  
                  при передачи в качестве аргумента другой функции, например:
                  
                  
                  
                  
                  
                  db2.dec(round(k,1),9,1)
                  
                  
                  
                  
                  
                  происходит ошибка:
                  
                  
                  SQL Error [42601]: ERROR: type modifiers must be simple constants or identifiers
                  
                  
                    Where: SQL function "dec" during startup
                  
                  
                  
                  
                  
                  
                  
                  
                  Неужели в PostgreSQL нельзя в качестве аргумента функции использовать другие функции?
                  
                  
                
Думаю, достаточно добавить принудительное приведение типа при передаче аргумента в функцию: round()::numeric или типа того. Но сомневаюсь, что там реально нужео принимать anyelement.
Обсуждают сегодня