Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ошибка SETOF-функции
|
|||
|---|---|---|---|
|
#18+
8.1.4 Эта функция после добавления еще одного поля начала давать ошибку, ранее работала нормально: ERROR: wrong record type supplied in RETURN NEXT Почему - не догоняю... :( CREATE OR REPLACE FUNCTION mega_checkcreate(dtype_ int4, id_kassa_ int4, id_kassir_ int4, dtime_open_ int4, sum_ "numeric", discount_ "numeric", description_ "varchar", memo_ "varchar") RETURNS SETOF t_mega_check AS $BODY$ DECLARE id INT4; rec_ RECORD; BEGIN SELECT nextval('t_mega_check_id_mega_check_seq') INTO id; IF NOT FOUND THEN RAISE EXCEPTION 'Error while create next id for table: t_mega_check!'; END IF; INSERT INTO t_mega_check VALUES(id,dtype_,id_kassa_,id_kassir_,dtime_open_,0,sum_,discount_,description_,memo_); FOR rec_ IN SELECT * FROM t_mega_check WHERE id_mega_check=id LOOP RETURN NEXT rec_; END LOOP; RETURN; END;$BODY$ LANGUAGE 'plpgsql' VOLATILE; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2006, 16:18 |
|
||
|
Ошибка SETOF-функции
|
|||
|---|---|---|---|
|
#18+
Заменил на rec_ t_mega_check%ROWTYPE; заработало. Невкурю, как работало раньше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2006, 16:24 |
|
||
|
Ошибка SETOF-функции
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. возможно заработало бы и так rec_ t_mega_check; (без %rowtype); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2006, 16:30 |
|
||
|
Ошибка SETOF-функции
|
|||
|---|---|---|---|
|
#18+
Видимо раньше эти типы совпадали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2006, 16:31 |
|
||
|
Ошибка SETOF-функции
|
|||
|---|---|---|---|
|
#18+
из t_mega_check удалялись столбцы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2006, 16:35 |
|
||
|
Ошибка SETOF-функции
|
|||
|---|---|---|---|
|
#18+
не дочитал ) Hordi... после добавления еще одного поля начала давать ошибку ... ну тогда вроде понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2006, 16:51 |
|
||
|
Ошибка SETOF-функции
|
|||
|---|---|---|---|
|
#18+
HordiЗаменил на rec_ t_mega_check%ROWTYPE; заработало. Невкурю, как работало раньше... Раньше работал примерно следующим образом: при первой компиляции функции был создан встроенный тип (абсолютно прозрачно для тебя), который и фигурировал в запросах. Впоследствии, после добавления в таблицу новой записи, тип уже стал несовместим с таблицей. Снова оно заработало не после того, как ты изменил (кстати, абсолютно правильно) тип переменной, а после того, как ты ВНОВЬ ПЕРЕКОМПИЛИРОВАЛ функцию, и она снова создала требуемые типы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2006, 23:23 |
|
||
|
Ошибка SETOF-функции
|
|||
|---|---|---|---|
|
#18+
Кувалдин Роман[quot Hordi]Снова оно заработало не после того, как ты изменил (кстати, абсолютно правильно) тип переменной, а после того, как ты ВНОВЬ ПЕРЕКОМПИЛИРОВАЛ функцию, и она снова создала требуемые типы. Да я тоже так подумал, поэтому специально удалял первую функцию, создавал ее заново, перегружал постгрес... Компиляция что, осталась после удаления функции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2006, 11:50 |
|
||
|
Ошибка SETOF-функции
|
|||
|---|---|---|---|
|
#18+
Кувалдин Роман HordiЗаменил на rec_ t_mega_check%ROWTYPE; заработало. Невкурю, как работало раньше... Раньше работал примерно следующим образом: при первой компиляции функции был создан встроенный тип (абсолютно прозрачно для тебя), который и фигурировал в запросах. Впоследствии, после добавления в таблицу новой записи, тип уже стал несовместим с таблицей. Снова оно заработало не после того, как ты изменил (кстати, абсолютно правильно) тип переменной, а после того, как ты ВНОВЬ ПЕРЕКОМПИЛИРОВАЛ функцию, и она снова создала требуемые типы. Мое imho что все не так :) Дайте ссылку на документацию где описано как компилируется функция. По моим субъективным наблюдениям, компиляции функции вообще не происходит. Так как я в любой момент могу вызвать тело функции со всеми своими коментариями и особенностями написания, вплоть до кол-ва пробелов. Еще раз повторюсь что это субьективное ощущение, поэтому жду опровержений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2006, 12:33 |
|
||
|
Ошибка SETOF-функции
|
|||
|---|---|---|---|
|
#18+
скорее всего просто план который построил pgplsql остался в пределах сесии.. и именно он выдавал ошибку.. т.к. известно (покрайней мере в 7.4) что плян не реагирует на смену структуры таблици. про 8ку невкурсе.. но в 7ке это точно точно..можно проверить в psqlе: #prepare my_plan select * from table; #alert table add column xxx; #execute my_plan; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2006, 13:51 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33782818&tid=2006316]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 395ms |

| 0 / 0 |
