Конференция "Базы" » PL/SQL и кирилица
 
  • keymaster © (18.04.08 16:44) [0]
    Допустимо ли такое использование кирилицы в PL/SQL?

    .....
    if mytable.myfield='Ы' then
    .....

    Сам так никогда не извращаюсь.
    Просто интересно послушать, что скажут умные люди.
  • Игорь Шевченко © (18.04.08 16:45) [1]
    вполне
  • keymaster © (18.04.08 16:49) [2]
    Странно, но мне кажется, что допустимо, но "не правильно".
  • keymaster © (18.04.08 17:12) [3]
    Требуется уточнение.
    Данные, описывающие некоторую сущность, живут в одной таблице.
    И есть поле - NameFull, где живёт имя.

    Собственно, вопрос в том, можно ли, зная, что в данный момент все имена начинаются с 'Ы' использовать такую конструкцию в хранимке на PL/SQL
    (проверка первого символа имени поля на равенство 'Ы')?

    Особенно, учитывая тот факт, что юзерский интерфейс приложения допускает смену любого наименования, что приведёт к неработоспособности функционала.
  • Игорь Шевченко © (18.04.08 22:48) [4]

    > Собственно, вопрос в том, можно ли, зная, что в данный момент
    > все имена начинаются с 'Ы' использовать такую конструкцию
    > в хранимке на PL/SQL
    > (проверка первого символа имени поля на равенство 'Ы')?


    первый символ поля проверяется как SUBSTR(mytable.myfield,1,1) = 'Ы'

    Ответ на вопрос - можно. Но если завтра имена будут начинаться на 'Ъ', то хранимку придется переписывать.
  • keymaster © (19.04.08 09:10) [5]
    Вот именно из-за того, что "хранимку придется переписывать", я и считаю, что использование аналогичных конструкций не есть правильно.
  • Кщд (21.04.08 06:39) [6]
    >keymaster ©   (19.04.08 09:10) [5]
    это называется хардкод
    причем здесь кириллица?
  • keymaster © (21.04.08 10:07) [7]

    > это называется хардкодпричем здесь кириллица?

    Использование кирилицы - частный случай хардкода.
  • Kolan © (21.04.08 10:21) [8]
    > Использование кирилицы — частный случай хардкода.

    Передавай параметром…
  • keymaster © (21.04.08 11:08) [9]
    Я всегда параметры использую.
  • ANB (21.04.08 12:00) [10]

    > keymaster ©   (21.04.08 11:08) [9]
    > Я всегда параметры использую.

    Если их есть кому передать. :)
    ИМХО : проблема не подходе к использованию кирилицы, а в неправильной архитектуре БД (алгоритм поиска может поменятся из-за изменения вносимых данных).
    Использование кирилицы в литералах на пл/скл вполне допустимо.
    Правило хорошего тона : если литерал используется в коде несколько раз - засунь его в константу, будет легче править.
    да, кстати, поиск по первому символу в поле делается не через ИФ, а через
    select * from T1 where FIO like 'Ы%'.
  • Кщд (21.04.08 12:54) [11]

    > keymaster ©   (21.04.08 10:07) [7]
    > Использование кирилицы - частный случай хардкода.

    в чем вопрос-то?
    можно или нет использовать в коде if mytable.myfield='Ы' then?
    ответ: да, можно, используйте)
    только аккуратнее при экспорте/импорте
    можете и переменные/программные юниты/таблицы/поля в кириллице называть - кто ж запретит-то?
  • keymaster © (21.04.08 13:25) [12]
    "Можно/неможно" - вопрос не о том, "проглотит" это компилятор или нет.
    Такая конструкция синтаксически допустима.
    Вопрос, скорее, из области "хорошо ли так делать".

    Я вообще противник хардкода.
  • Kolan © (21.04.08 13:28) [13]
    > Я вообще противник хардкода.

    Зависит от задачи. Ищи точки вариации в них и предусматривай возможность расширения. В остальных места — зачем?
  • ANB (21.04.08 13:29) [14]

    > Вопрос, скорее, из области "хорошо ли так делать".

    Вполне нормально и не всегда это хардкорд.
    Зависит от задачи. Если этот литерал потом будет меняться - надо подумать насчет справочника настроек. А лучше вообще вынести признак в отдельное поле.
  • Кщд (21.04.08 13:43) [15]
    >keymaster ©   (21.04.08 13:25) [12]
    тогда и тема должна звучать, например, так: хардкод - "за" и "против"))
    хардкод допустим и уместен там, где он допустим и уместен
    для Вашего конкретного случая дать какой-либо однозначный совет не представляется возможным, ибо нет конкретики
 
Конференция "Базы" » PL/SQL и кирилица
Есть новые Нет новых   [134432   +19][b:0][p:0]