1. SQL / Говнокод #13658

    −167

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    --разрешаем конечному подразделению быть вышестоящим и входящим одновременно!
            if idpHIGHDepartment = idpDepartment then
              ---------
              begin
                select count(*)
                  into nvnewcount
                  from PRL_IncomingDepartments PID
                 where PID.IDDepartment = idpHIGHDepartment;
    
                if idpDepartment <> idpHIGHDepartment then
                  return 1;
                else
                  --Проставим подразделение
                  return 2;
                end if;
              exception
                when NO_DATA_FOUND then
                  return 1;
              end;
              ---------
            else
    
              --Проставим подразделение
              return 2;
            end if;

    это просто говно

    Запостил: siv163, 23 Августа 2013

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

    • Как же все-таки такой подход Оракла бесит:
      begin
      select ...
      do some shit
      exception
      when NO_DATA_FOUND then
      do another shit
      end;

      Почему когда запрос не вернул данных - это исключение? Он вернул пустое множество.

      Может я один такой, но T-SQL way как-то приятней (ближе к императивщине?):
      IF EXISTS(select ...)
      do some shit
      ELSE
      do another shit
      END
      Ответить
      • no_data_found - только одно из исключений. Ты можешь в этом же блоке обработать и другие. Вполне удобно, по-моему. Другой вопрос, что автор никогда с count no_data_found не получит...
        Ответить
    • Весь этот кусок говна можно целиком заменить на
      return 2;
      Ответить

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