Jawa / Говнокод #10246 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
final String sqlString=
					" select distinct 1 "+
					" , c_rep.card_id as rep_id "+
					" , av_rep_xml.long_binary_value as rep_xml "+
					" , av_sname_nm.string_value as name "+
					" , av_c_date.date_value as date \n"+
					" from	card c_res \n"+
					" 	join 	attribute_value av_res_rep on (av_res_rep.card_id = c_res.card_id and av_res_rep.attribute_code = 'JBR_RIMP_REPORT') \n"+
					" 	join	attribute_value av_res_exec on (av_res_exec.card_id = c_res.card_id and av_res_exec.attribute_code = 'JBR_INFD_EXEC_LINK') \n"+
					" 	join 	card c_rep on (c_rep.card_id = av_res_rep.number_value ) \n"+
					" 	left outer join attribute_value av_rep_xml on (av_rep_xml.card_id = c_rep.card_id and av_rep_xml.attribute_code = 'ADMIN_702354') \n"+
					" 	left outer join attribute_value av_c_date on (av_c_date.card_id = c_rep.card_id and av_c_date.attribute_code = 'CREATED') \n"+
					" 	left outer join	attribute_value av_rep_exec on (av_rep_exec.card_id = c_rep.card_id and av_rep_exec.attribute_code ='ADMIN_702335') \n"+
					" 	left outer join	person person_card on (person_card.person_id=av_rep_exec.number_value) \n"+
					" 	left outer join attribute_value av_sname_nm on (av_sname_nm.card_id = person_card.card_id and av_sname_nm.attribute_code = 'JBR_PERS_SNAME_NM') \n"+
					" 	left outer join attribute_value av_on_control on ( av_on_control.attribute_code = 'JBR_TCON_ONCONT' and av_on_control.card_id = c_res.card_id) \n"+
					" where	c_res.card_id = " + sResId+ "\n"+
					" 	and av_res_exec.number_value = av_rep_exec.number_value \n"+
					" 	and av_on_control.value_id=1449 \n"+
					" 	and c_res.status_id in (103, 206) \n"+

					// UNION
					" UNION select 51 \n"+
					" , c_rep.card_id as rep_id \n"+
					" , av_rep_xml.long_binary_value as rep_xml \n"+
					" , av_sname_nm.string_value as name \n"+
					" , av_c_date.date_value as date \n"+
					" from card c_prnt \n"+
					" 	left outer join attribute_value av_res on ( av_res.attribute_code = 'JBR_IMPL_RESOLUT' and av_res.card_id = c_prnt.card_id) "+
					" 	left outer join card c_res on (c_res.card_id=av_res.number_value)"+
					" 	join 	attribute_value av_res_rep on (av_res_rep.card_id = c_res.card_id and av_res_rep.attribute_code = 'JBR_RIMP_REPORT') "+
					" 	join	attribute_value av_res_exec on (av_res_exec.card_id = c_res.card_id and av_res_exec.attribute_code = 'JBR_INFD_EXEC_LINK') "+
					" 	join 	card c_rep on (c_rep.card_id = av_res_rep.number_value ) "+
					" 	left outer join attribute_value av_rep_xml on (av_rep_xml.card_id = c_rep.card_id and av_rep_xml.attribute_code = 'ADMIN_702354') "+
					" 	left outer join attribute_value av_c_date on (av_c_date.card_id = c_rep.card_id and av_c_date.attribute_code = 'CREATED') "+
					" 	left outer join	attribute_value av_rep_exec on (av_rep_exec.card_id = c_rep.card_id and av_rep_exec.attribute_code = 'ADMIN_702335') "+
					" 	left outer join	person person_card on (person_card.person_id=av_rep_exec.number_value) "+
					" 	left outer join attribute_value av_sname_nm on (av_sname_nm.card_id = person_card.card_id and av_sname_nm.attribute_code = 'JBR_PERS_SNAME_NM') "+
					" 	left outer join attribute_value av_on_control on ( av_on_control.attribute_code = 'JBR_TCON_ONCONT' and av_on_control.card_id = c_res.card_id)  "+
					" where "+
					" 	c_prnt.card_id = "+ sResId+ "\n"+
					" 	and c_prnt.template_id <> 324 \n"+
					" 	and av_res_exec.number_value = av_rep_exec.number_value \n"+
					" 	and av_on_control.value_id=1449 \n"+
					" 	and c_res.status_id in (103, 206) \n"+
	
.... и еще 8 UNION, куча строчек в том же стиле и с тем же смыслом

Формирование SQL запроса в методе, который возвращает строковое представление хода исполнения поручения (кто сделал, что сделал, когда и в какой последовательности). Сам метод, если кому интересно дергается из Jasper report.

Мало того, что запросик имеет длину 250 строк кода (большая часть которых копи/паст с небольшими изменениями), так он ещё и возвращает полную ахинею вместо того что нужно. Чего хотел сказать автор - теперь уже не узнать...

Запостил: amberLord amberLord, (Updated )

Комментарии (12) RSS

      • Помню в одном проекте был у нас запрос > 700кБ

        П. С. Его гибер сгенерил
        Ответить
          • на удивление нет - пара секунд.

            на еще большее удивление postgres распарсил его за смешное время - точно не помню, но меньше 100мс это точно.
            Ответить
  • Можно больше) не нужно) а лучше надеяться, что с таким никогда в жизни не придется столкнуться)
    Ответить
  • Вы ведь это придумали? Такого на самом деле не бывает
    Ответить
    • На самом деле кода не существует, мы его придумываем.
      Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8