Чтобы быть тупым, я вижу это как:
Хорошие программисты програмируют оборону, Bad программисты этого не делают.
Так как есть несколько примеров выше, и мой собственный подобный опыт с связанными ошибками чтобы забыть скобки, я узнал, как трудно ВСЕГДА ОТКРЫТЬ БРАКЫ.
Все остальное выбирает личный стиль над безопасностью, и это явно плохое программирование.
Джоэл даже упоминает об этом в Нарушение неправильного кода
После того, как вы получите ошибку из-за отсутствия фигурных скобок, вы узнаете, что отсутствующие фигурные скобки выглядят неправильно, потому что вы знаете, что это потенциальное место для возникновения другой ошибки.
Для меня ваша логика выбора записей должна быть выражена в виде условия в предложении WHERE
, например:
(:p_terminal LIKE 'CN%' AND sm.terminalid like 'CN%')
OR (:p_terminal NOT LIKE 'CN%' AND sm.terminalid = :p_terminal)
Когда данный параметр выглядит как начинается с 'CN'
, выбираются все записи. где terminalid
начинается с 'CN'
. Иначе он выбирает записи, где terminalid
равно параметру.
Запрос:
SELECT
sm.terminalid as terminalcode,
sm.sums as Latest_sums
FROM sums1 sm
WHERE
(:p_terminal LIKE 'CN%' AND sm.terminalid like 'CN%')
OR (:p_terminal NOT LIKE 'CN%' AND sm.terminalid = :p_terminal)