Тип double не существует в PostgreSQL - PullRequest
0 голосов
/ 16 октября 2018

У меня есть таблица, подобная этой:

CREATE TABLE workingtime_times
(
  workingno serial NOT NULL,
  checktime character(6) NOT NULL,
  timeoffset double precision DEFAULT 9
)

Я создаю функцию, подобную этой:

CREATE OR REPLACE FUNCTION MyFName()
    RETURNS TABLE(
        CheckTime character varying,
        TimeOffset double 
    ) AS
$BODY$
BEGIN 
    RETURN QUERY 
    SELECT  t.CheckTime, t.TimeOffset
    FROM WorkingTime_Times t
    ORDER BY t.WorkingNo DESC
    limit 1;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100
  ROWS 1000;
ALTER FUNCTION MyFName()
  OWNER TO postgres;

Она выдает ошибку, подобную этой:

typedouble не существует

Почему мы можем создать таблицу с типом данных столбца double, но возврат в функцию завершится неудачно.Какой тип мы можем вернуть в этом случае?

1 Ответ

0 голосов
/ 16 октября 2018

Имя типа DOUBLE PRECISION, а не просто DOUBLE.Таким образом, заголовок вашей функции должен выглядеть следующим образом:

CREATE OR REPLACE FUNCTION MyFName() RETURNS TABLE(
    CheckTime CHARACTER VARYING, TimeOffset DOUBLE PRECISION 
) AS

Вы также можете использовать ссылки на типы:

CREATE OR REPLACE FUNCTION MyFName() RETURNS TABLE(
    CheckTime working_intems.checktime%TYPE, 
    TimeOffset workingtime_times.timeoffset%TYPE 
) AS
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...