Форум программистов, компьютерный форум, киберфорум
Наши страницы
PostgreSQL
Войти
Регистрация
Восстановить пароль
 
Shchusia
39 / 39 / 23
Регистрация: 20.11.2017
Сообщений: 80
1

Ошибка в ХП

08.02.2018, 20:12. Просмотров 166. Ответов 1
Метки нет (Все метки)

добрый вечер
ошибка в ХП точнее когда выполняю ее
у меня есть таблица сообщения
Oracle 11 SQL
1
2
3
4
5
6
7
8
CREATE TABLE messages(
  id_message INT PRIMARY KEY DEFAULT NEXTVAL('message_id'),
  ref_id_message_type INT REFERENCES message_type(id_type_message),
  ref_id_sender INT REFERENCES users(id_user),
  ref_id_chat INT REFERENCES chat(id_chat),
  created_on TIMESTAMP without TIME ZONE DEFAULT timezone('utc'::text, now()),
  text_message text
);
мне необходимо получить последние сообщения по некоторым чатам
я написал ХП и создал тип под возвратное сообщение
Oracle 11 SQL
1
2
3
4
5
6
7
8
CREATE TYPE messages_result_ AS(
  id_message INT,
  text_message VARCHAR(1000),
  date_create TIMESTAMP,
  type_message int,
  id_sender int,
  id_chat int
);
и метод который принимает массив айдишников чатов (если в чате нет сообщения возвращает дефолтные значения
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CREATE OR REPLACE FUNCTION my_method_(chats_id INT[]) RETURNS setof messages_result_ AS $$
DECLARE i INT;
DECLARE res messages_result_;
BEGIN
 FOREACH i IN ARRAY chats_id
  LOOP
      SELECT (mess.id_message , mess.text_message :: VARCHAR(1000) , mess.created_on, mess.ref_id_message_type, mess.ref_id_sender, mess.ref_id_chat) INTO res
      FROM messages mess
      WHERE mess.ref_id_chat = i
      AND mess.id_message = (SELECT MAX(messa.id_message) FROM messages messa WHERE messa.ref_id_chat = i);
      IF res ISNULL THEN
        res.id_message = 0;
        res.text_message = '';
        res.id_chat = i;
        res.date_create = '1970.01.01' ::TIMESTAMP;
        res.type_message = 1;
        res.id_sender = 0;
      END IF;
  RETURN next res;
 END LOOP;
END
$$ LANGUAGE plpgsql;
преобразование к тексту и варчару было добавлено позже когда уже не работало

после запускаю чтоб получить
Oracle 11 SQL
1
2
3
SELECT m.id_message, m.text_message :: text, m.date_create,m.id_chat,m.id_sender,m.type_message
FROM my_method(ARRAY [1,3,5,6,7,8,12,14,16,18,20,22,24,26,30,34,36,40,42,44,46]) m
ORDER BY m.date_create DESC, m.id_chat ASC LIMIT 2 OFFSET 2

но падает с
Oracle 11 SQL
1
ERROR: invalid input syntax FOR INTEGER: "(1,zfsdf,"2018-02-08 16:50:39.154667",1,1,1)" WHERE: PL/pgSQL FUNCTION my_method(INTEGER[]) line 7 AT SQL statement
в чем причине не пойму
подскажите пожалуйста
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2018, 20:12
Ответы с готовыми решениями:

IIS- asp ошибка: HTTP 500.100 - Внутренняя ошибка сервера - ошибка ASP Internet Information Services
Привет! Конфигурация win2000pro sp2, стандартный IIS, IE 5. При попытке...

Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка записи!
Доброго всем времени суток! подскажи пожалуйста как исправить ошибку: Ошибка...

Ошибка при добавлении в файл. Ошибка 101: Ошибка записи на диск (Error 101: Disk write error).
Здравствуйте, возникла проблема такого плана. Нужно произвести добавление...

Загружается до окна приветствия и вылетает ошибка: isass.exe - Системная ошибка
Ребята, помогите кто может... весь день бьюсь безрезультатно... с утра пришёл...

Ошибка разбора XML/ Ошибка при вызове метода контекста (Прочитать)
1C 8.2 Документооборот КОРП 1.2 Текст ошибки...

1
grgdvo
751 / 638 / 226
Регистрация: 02.09.2012
Сообщений: 1,883
12.02.2018, 14:33 2
Какая версия PG?? В 10-ке Ваш код исполняется без указанной ошибки, за исключением, что вы потеряли символ подчерка ("_") в названии функции при вызове
FROM my_method_(ARRAY [1,3,5,6,7,8,12,14,16,18,20,22,24,26,30,34,36,40,42,44,46]) m
может у вас там похожая функция затерялась??
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2018, 14:33

Ошибка HTTP 500 - внутреняя ошибка сервера при отправке почты.
Я пытаюсь отправить почту и присоединяю к ней письма Вот часть страницы Dim...

ASP: Response.Redirect - не работает, ошибка `500 - Внутренняя ошибка сервера'
Всем привет! Есть в ASP-сраничке такой код: Response.Redirect...

Django Ошибка доступа (403) Ошибка проверки CSRF. Запрос отклонён
На хостинге разместил сайт и не могу войти в админку, т.к. возникает 403 ошибка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru