Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
EXECUTE ... INTO ошибка
|
|||
|---|---|---|---|
|
#18+
Есть такая функция: ------------ CREATE OR REPLACE FUNCTION container_category_name(int4,varchar) RETURNS "varchar" AS $BODY$ DECLARE container_id ALIAS FOR $1; get_lang ALIAS FOR $2; rec record; query varchar; cat_name varchar; BEGIN query:= 'select name_' || get_lang || ' From cargo_category Where id=' container_id; EXECUTE query INTO rec; cat_name = rec.name; RETURN cat_name; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION container_category_name(int4,varchar) OWNER TO postgres; ------------ Где ошибка?: ------------- select container_category_name(754,'ru') ------------- ERROR: record "rec" is not assigned yet DETAIL: The tuple structure of a not-yet-assigned record is indeterminate. CONTEXT: PL/pgSQL function "container_category_name" line 18 at execute statement ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2007, 18:03 |
|
||
|
EXECUTE ... INTO ошибка
|
|||
|---|---|---|---|
|
#18+
serejaa ERROR: record "rec" is not assigned yet DETAIL: The tuple structure of a not-yet-assigned record is indeterminate. CONTEXT: PL/pgSQL function "container_category_name" line 18 at execute statement Ia podozrevau, chto delo v tom, chto v dannom sluchae vash SELECT, kotoryy EXECUT'itsia ne vozvrashaet ni odnoi stroki. ( k tomu je, esli daje esli ona i budet vozvrashat' Vash kod rabotat' ne budet ... -- rec.name ne budet rabotat') I voobshe ia Vam rekomenduiu opredelit' peremennuiu rec tipom varchar, a ne record, i vozvrashat' priamo ee -- togda vse doljno normalno srabotat'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2007, 23:24 |
|
||
|
EXECUTE ... INTO ошибка
|
|||
|---|---|---|---|
|
#18+
И почему вы пытаетесь присвоить rec.name когда из запроса возвращаеться поле с именем 'name_' || getl_lang ? Тогда уж стоить добавить AS name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2007, 23:37 |
|
||
|
EXECUTE ... INTO ошибка
|
|||
|---|---|---|---|
|
#18+
Теперь дроугая ошибка, ------------------ CREATE OR REPLACE FUNCTION container_category_name(int4, "varchar") RETURNS "varchar" AS $BODY$ DECLARE container_id ALIAS FOR $1; get_lang ALIAS FOR $2; rec record; query varchar; cat_name varchar; BEGIN query:= 'select name_' || get_lang || ' as name From cargo_category Where id=' || container_id; EXECUTE query INTO cat_name; --cat_name = rec.name; RETURN cat_name; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ----------------- ERROR: syntax error at or near "$2" at character 20 QUERY: SELECT $1 INTO $2 CONTEXT: PL/pgSQL function "container_category_name" line 18 at execute statement запрос возвращает значение, я проверил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2007, 12:21 |
|
||
|
EXECUTE ... INTO ошибка
|
|||
|---|---|---|---|
|
#18+
Посмотрите перед executom чего у вас реально в query получаеться, и попробуйте именно это отдельно запустить. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2007, 18:01 |
|
||
|
EXECUTE ... INTO ошибка
|
|||
|---|---|---|---|
|
#18+
raise notice '%', query; делал, копировал и выполнял запрос - возвращает. а это не работает: EXECUTE query INTO rec ; -- т.к. ошибка появляется в этой строке IF FOUND THEN RAISE NOTICE 'fiund'; END IF; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2007, 14:48 |
|
||
|
EXECUTE ... INTO ошибка
|
|||
|---|---|---|---|
|
#18+
Ошибка появляется именно когда я пишу EXECUTE query into rec; Если просто: EXECUTE query; -- то ошибки нет ERROR: record "rec" is not assigned yet ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2007, 14:56 |
|
||
|
EXECUTE ... INTO ошибка
|
|||
|---|---|---|---|
|
#18+
попробуте через курсор Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2007, 15:27 |
|
||
|
EXECUTE ... INTO ошибка
|
|||
|---|---|---|---|
|
#18+
получилось курсором! thanks! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2007, 15:49 |
|
||
|
EXECUTE ... INTO ошибка
|
|||
|---|---|---|---|
|
#18+
Так а какая версия ПГ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2007, 16:33 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=34239808&tid=2005812]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 382ms |

| 0 / 0 |
