Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
select into
|
|||
|---|---|---|---|
|
#18+
тригер: завпрос: select dialpeer_name,active into dialpeername,active_p from dialpeer where id = NEW.id_dp; active_p integer; dialpeername varchar(200); переменные dialpeername,active_p нулевые, я их для теста в том же тригере insert into tb_test_val (text_f) values (dialpeername); insert into tb_test_val (text_f) values (active_p); хотя если сделать выборку руками то всё ОК. и сам тригер не работает изза этого правильно. Плиз помогите, select into уже не первый раз так глючит, точно такая же функция с дургим именем и для других таблиц работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2006, 17:11 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
может непонятно выразился, переменным dialpeername и active_p не присваиваються необходимые значения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2006, 18:26 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
4_Alexможет непонятно выразилсяа что, приводить код гордость не позволяет? здаецца он и попонятней за вас выразится, и гадать не придется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2006, 18:50 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
DECLARE ---NOT USED --generate NEW.id_dp DP cfg_curs_pr cfg_curs_pr CURSOR FOR select par.parametr_name,cfg.parametr, cfg.id_ss from tb_dialpeer_db_cfg cfg,tb_parametr_cfg par where cfg.id_parametr = par.id and cfg.id_dp=NEW.id_dp and cfg.id_ss = NEW.id_ss order by par.id; dp_cfg text; par_parametr_name varchar; par_parametr_value varchar; group_name varchar; cfg_id integer; active_p integer; dialpeername varchar(200);act varchar; cnt integer; cnt_par integer; def_ss_id integer;ss_id integer;id integer; BEGIN delete from tb_test_val; execute 'select dialpeer_name,active into '||dialpeername||','||active_p||' from dialpeer where id = '||NEW.id_dp; --dialpeername := (select dialpeer_name::varchar from dialpeer where id = NEW.id_dp); --active_p := (select active::integer from dialpeer where id = NEW.id_dp); --'test_dp'; insert into tb_test_val (text_f) values (NEW.id_dp::text); insert into tb_test_val (text_f) values (dialpeername); insert into tb_test_val (text_f) values (active_p); --if (active_p>0) then act = null; else act = '#_'; end if; --gw_cfg = lower('[db_'||replace(gw_descr, ' ', '_')||'_'||NEW.id_gateway||']\n'); dp_cfg := lower('[db_'||replace(dialpeername::text, ' ', '_')::text||'_'||NEW.id_dp||']\n')::text;--act|| --dp_cfg = 'test\n'; insert into tb_test_val (val) values (dp_cfg); insert into tb_test_val (val) values (dialpeername); OPEN cfg_curs_pr; LOOP FETCH cfg_curs_pr INTO par_parametr_name,par_parametr_value,ss_id;IF NOT FOUND THEN EXIT; END IF; dp_cfg = dp_cfg || par_parametr_name || par_parametr_value||'\n';--||act END LOOP; CLOSE cfg_curs_pr; --insert into tb_test_val (text_f) values (dp_cfg); cnt_par = 0; select count(*) into cnt_par from tb_dialpeer_db_cfg where id_dp = NEW.id_dp and id_ss = NEW.id_ss; if(cnt_par>0) then update tb_sw_dp_cfg set config=dp_cfg where id_dp = NEW.id_dp and id_sw=NEW.id_ss;END IF; RETURN NEW; END; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2006, 20:01 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
сделал как в доке, SELECT INTO dp_r * FROM dialpeer WHERE id = NEW.id_dp; тот же результат, вот ещё сам тригер где сидит, чтобы не думали что он селектит из той же таблицы куда вставляет:) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 10:46 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
сам с собой.... решил, оформил этот селект в функцию, но сильно подозреваю что можно и без этого обойтись, кто то в курсе как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 11:10 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
и я должен догадаться, что за "тот же результат" вы получаете? кстати, возможно думать у вас попросту нет dialpeer-ов с нужным id (в момент исполнения триггера). Киньте еще и каунт от них в эту вашу таблицу логов - для проверки. еще один способ - расставьте нотисы в подозрительных местах, и следите за содержимым переменных в процессе выполнения, а не через сомнительную табличку лога. (была завершена транза/ не была - нотисы пройдут). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 11:33 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
4321и я должен догадаться, что за "тот же результат" вы получаете? кстати, возможно думать у вас попросту нет dialpeer-ов с нужным id (в момент исполнения триггера). Киньте еще и каунт от них в эту вашу таблицу логов - для проверки. еще один способ - расставьте нотисы в подозрительных местах, и следите за содержимым переменных в процессе выполнения, а не через сомнительную табличку лога. (была завершена транза/ не была - нотисы пройдут). insert into tb_test_val (text_f) values (NEW.id_dp::text); есть такой айди, я же написал выше что оформив запрос как функцию всё заработало, результат тригера не важен, важен тот факт что переменные не передыються запросом типа select dialpeer_name,active into dialpeername,active_p from dialpeer where id = NEW.id_dp; NEW.id_dp не нулевое, insert into tb_test_val (text_f) values (NEW.id_dp::text) инсертит вполне реальное значение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 11:57 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
по моему тупому мнению, dialpeer.id в конструкции from dialpeer where id = NEW.id_dp; несколько отличаецца от этого самого NEW.id_dp; (которое вы проверяете), а именно на вероятность его отсутствия в табле именно в момент транзакции, а не в каком то отдельно исполняемом запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 12:15 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
4321по моему тупому мнению, dialpeer.id в конструкции from dialpeer where id = NEW.id_dp; несколько отличаецца от этого самого NEW.id_dp; (которое вы проверяете), а именно на вероятность его отсутствия в табле именно в момент транзакции, а не в каком то отдельно исполняемом запросе. с этим всё ОК, проверенно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 13:16 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
4_Alex 4321по моему тупому мнению, dialpeer.id в конструкции from dialpeer where id = NEW.id_dp; несколько отличаецца от этого самого NEW.id_dp; (которое вы проверяете), а именно на вероятность его отсутствия в табле именно в момент транзакции, а не в каком то отдельно исполняемом запросе. с этим всё ОК, проверенно"не верю" (сам накалывался на ошибке логики при нескольких триггерах, т.ч. и вам не поверю ) - выдайте нотис или по количеству записей, а лучше - с самой записью - т.е. со всеми ее полями через запятую - прямо из триггера , прямо из того места, где у вас не получаицца присвоить, и не чешите моск. Если же нотис напишет, шо запись получена, а следом, другой нотис, - что ее поля не присвоились переменным - то просьба оформить сообщение о баге (баги бывают, но кааца не в вашем случае) со всем сопутствующим "окружением" - мне интересно не наступать на чужой грабель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 14:30 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
я вже не просто так не верю. Я попросту проверил: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 14:37 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
Код: plaintext те вставил реальное значение 108441, версия у меня 8.1.2 а как нотайсы выводить, дайте один пример. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 15:03 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
Нотисы? - вот кстати я баг тестировал (в 7.4. он есть , в 8.0 и 8.1. его нет) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 15:18 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
>NOTICE: select dialpeer_name<NULL> ... Код: plaintext 1. как ещё можно проверить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 18:36 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
а ещё вот так: >NOTICE: select dialpeer_name<NULL> .... Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 18:44 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
не торопитесь: Код: plaintext 1. Код: plaintext 1. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 18:59 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
>NOTICE: select id =<NULL> >NOTICE: select count =0 Код: plaintext 1. 2. 3. отдельно select id from dialpeer where id = 108441 select count(*) from dialpeer where id = 108441 дают 108441 и 1 соответственно, счас бубны достану и начну танцевать:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 19:32 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
как вариант dialpeer не содержит этого id во время транзакции, ибо: 1. создана одноименная, но темповая таблица в транзакции, именно она и видна под именем dialpeer из транзакции 2. есть несколько схем (или даже баз) с одноименными таблицами. Вручную вы опрашиваете не ту, что в транзакции (1 - специфич. подслучай 2) 3. таки ошибка в логике (в момент транзакции вы где-то по ходу дропаете запись), что маловероятно - ведь вы, кажецца, опрашиваете уже некую конкретную запись, а не ту, с которой активно работаете в транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2006, 10:30 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
4321как вариант dialpeer не содержит этого id во время транзакции, ибо: 1. создана одноименная, но темповая таблица в транзакции, именно она и видна под именем dialpeer из транзакции 2. есть несколько схем (или даже баз) с одноименными таблицами. Вручную вы опрашиваете не ту, что в транзакции (1 - специфич. подслучай 2) 3. таки ошибка в логике (в момент транзакции вы где-то по ходу дропаете запись), что маловероятно - ведь вы, кажецца, опрашиваете уже некую конкретную запись, а не ту, с которой активно работаете в транзакции. 1,3 отпадает, а вот 2 так и есть, есть тестовая схема с такими же талицами, те мне надо указывать имясхемы.dialpeer? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2006, 00:28 |
|
||
|
select into
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. спасло вот так, как всё оказалось просто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2006, 00:57 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33600550&tid=2006554]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
18ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 367ms |

| 0 / 0 |
