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

    −855

    1. 1
    2. 2
    if (nvl(pSubject_ID, 0) = 0) then
       ...

    Вот так матёрые банковские программеры пишут "is null" на PL/SQL

    Запостил: guest, 12 Мая 2009

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

    • cyberone:
      Возможно это связано с тем что в oracle кроме null есть еще что-то типа undef, много раз встречал такое и не в банках.
      Ответить
    • Formidable:
      Матерые банковские программеры пишут (pSubject_ID is NULL) OR (pSubject_ID = 0), а nvl короче и понятней для тех кто в теме
      Ответить
    • Дмитрий:
      Не факт, что это IS NULL. Может быть сплошь и рядом ситуация, что действие выполняется, когда значение пусто или равно нулю. Согласен с предыдущим аффтаром - тут nvl к месту.
      Ответить
    • Ivan:
      Если выбралось 0 строчек с pSubject_ID - то результат не null: is null не подойдет
      Ответить
    • Очень часто встречаешь на первый взгляд очень глупый код, но тока до тех пор пока не узнаешь с какой целью он писался. Попробуйте поискать причины по которым писалось именно так, а не иначе, быть может вы и сами вскоре будите писать именно такой замечательный говнокод.
      Ответить
    • У нас на проекте такой код используется генератором запросов чтобы не делать лишнюю проверку и сохранить структуру запроса независимо от пришедшего значения. Тоесть чтоб не писать is null когда приходит NULL а всегда писать where nvl(field, -1) = nvl(value, -1)
      ИМХО говнокодом тут не пахнет
      Ответить
    • аффтар, включи моск
      Ответить
    • Не говнокод. Негодую.
      Ответить
    • дебил который запостил этот кусок как говнокод явно сам тупой говнокодер, раз не понял смысла кода.

      вывод - из говнокода убрать, автора забанить к ебениматери придурка
      Ответить
    • Поддержу негодование.
      Ответить
    • автор, 0 IS NOT NULL
      Ответить
    • Скорее всего для того чтобы index - nvl(pSubject_ID, 0) работал так как на is null индекс не построить
      Ответить
    • скорее всего это вместо if (pSubject_ID is null or pSubject_ID=0)
      ничего говнокодерского
      Ответить

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