Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сравнение по varchar / 19 сообщений из 19, страница 1 из 1
27.10.2017, 13:10
    #39543232
igor_alex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
Эффективно ли делать сравнение по varchar?

Допустим пишем функцию, где необходимо производить сравнение переменной с некоторыми значениями,
как лучше делать?
если писать сравнение с varchar, то все значения будут символьные и вполне логически понятные, а если производить
сравнение с number к примеру, то для каждого значения придется писать пояснение, это так же затруднительно
для чтения кода, потому что придется искать где какая константа и что означает...
Какой выход можно придумать из этой ситуации?
...
Рейтинг: 0 / 0
27.10.2017, 13:16
    #39543239
MaximaXXL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
igor_alex,

Вопрос как то по деб...му сформулирован.
Сравнение надо делать так как поставлено в задаче.
И избегать неявных преобразований чтоб всем было понятно.
...
Рейтинг: 0 / 0
27.10.2017, 13:26
    #39543250
Загги
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
Что вообще конкретные данные делают в вашем коде? Хардкод, который не обоснован - это плохо.
...
Рейтинг: 0 / 0
27.10.2017, 13:41
    #39543265
igor_alex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
MaximaXXLigor_alex,

Вопрос как то по деб...му сформулирован.
Сравнение надо делать так как поставлено в задаче.
И избегать неявных преобразований чтоб всем было понятно.

на всех не угодишь, не понял - прошёл мимо
...
Рейтинг: 0 / 0
27.10.2017, 13:42
    #39543268
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
igor_alexКакой выход можно придумать из этой ситуации? http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
27.10.2017, 13:56
    #39543279
igor_alex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
Elic,

я так и спрашивал
...
Рейтинг: 0 / 0
27.10.2017, 13:58
    #39543284
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
igor_alex,

пример с char и number?

....
stax
...
Рейтинг: 0 / 0
27.10.2017, 13:59
    #39543285
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
igor_alexя так и спрашивалТы заблуждаешься.
...
Рейтинг: 0 / 0
27.10.2017, 15:09
    #39543341
MaximaXXL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
igor_alexElic,

я так и спрашивал

Вопрос звучал немного не так:


Допустим есть питомник, где необходимо производить сравнение найденног животного с некоторыми животными,
как лучше делать?
если сравнение с животными, то все органы будут одинаковыми и вполне логически понятные, а если производить
сравнение с бобром к примеру, то для каждого органа придется писать пояснение, это так же затруднительно
для организации питомника, потому что придется искать где какой орган и что означает...
Какой выход можно придумать из этой ситуации?
...
Рейтинг: 0 / 0
27.10.2017, 15:17
    #39543351
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
MaximaXXL, а чем Бобр так отличается от остальных Животных, что сравнение с ним настолько затруднительно?
...
Рейтинг: 0 / 0
27.10.2017, 15:35
    #39543368
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
RMagistr2015,

В твоей задаче как обычно не хватает смысла.

Какую реальную задачу ты пытаешься решить?
...
Рейтинг: 0 / 0
27.10.2017, 15:43
    #39543378
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
--Eugene--чем Бобр так отличается от остальных Животных
Ограниченным набором органов относительно более общего класса Животных.

Можно сделать функцию отображения, которая какой-то части класса Животных сопоставит конкретного Бобра.
Но придётся рядом повесить плакат, на котором будет нарисовано соответствие каждого Бобра и проецируемых на него Животных.
Обратимость боброотображения в общем случае не гарантируется.
...
Рейтинг: 0 / 0
27.10.2017, 15:46
    #39543381
погроммист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
igor_alexMaximaXXLigor_alex,

Вопрос как то по деб...му сформулирован.
Сравнение надо делать так как поставлено в задаче.
И избегать неявных преобразований чтоб всем было понятно.

на всех не угодишь, не понял - прошёл мимо
понять тебя могут не только лишь все
...
Рейтинг: 0 / 0
27.10.2017, 18:06
    #39543487
Бракованный финский угорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
igor_alex,
Допустим пишем функцию, где необходимо производить сравнение переменной с некоторыми значениями,
Допущение принято.
если писать сравнение с varchar, то все значения будут символьные и вполне логически понятные
Логично, например
Код: plsql
1.
  if p_text = 'coca' or p_text = 'coса' or p_text = 'соca' or p_text = 'сoсa' or p_text = 'сoсa' then   


а если производить
сравнение с number к примеру, то для каждого значения придется писать пояснение
Что конечно совершенно неудобно и неинформативно
Код: plsql
1.
2.
3.
 C_COCA_ID constant number := 37;
..........
 if p_number = C_COCA_ID then


это так же затруднительно
для чтения кода, потому что придется искать где какая константа и что означает
Не поспоришь, да. Сложно дать разумное текстовое название константам. Куда сложнее, чем сравнивать текстовые значения.

Поэтому конечно же сравнивай только тексты, мелкие затруднения вроде регистра символов, кодировки, совпадающих символов разных алфавитов, непечатаемых символов и пробелов, не должны погасить твой пыл.
Ни в коем случае не используй нормализацию данных, справочники и именованные константы, а то коллеги решат, что ты поумнел и станут давать сложные задачи.
...
Рейтинг: 0 / 0
27.10.2017, 18:17
    #39543494
Lary Denis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
igor_alexна всех не угодишь, не понял - прошёл мимо


Если бы на этом форуме все жили по этому правилу, то ни на одну тему, созданную тобой, не было бы ни одного ответа.
Извини, я пошел мимо.
...
Рейтинг: 0 / 0
28.10.2017, 14:20
    #39543682
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
Бракованный финский угорьigor_alex,
Логично, например
Код: plsql
1.
  if p_text = 'coca' or p_text = 'coса' or p_text = 'соca' or p_text = 'сoсa' or p_text = 'сoсa' then   



check на наличие латиницы/триггер с трансляцией

ps
реальный пример серия паспорта КА

....
stax
...
Рейтинг: 0 / 0
29.10.2017, 02:12
    #39543872
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
igor_alex,

если я правильно вас понимаю, вы решаете, каким сделать поле: числовым или текстовым.
Сомневаетесь, что поиск по текстовому полю будет дольше. А если оно проиндексовано?
Еще один момент: почему бы не сделать поле числовым с FOREIGN KEY на таблицу, в которой спокойно можно расшифровать числовые коды и даже отображать эти тексты запросом с JOIN
...
Рейтинг: 0 / 0
30.10.2017, 09:28
    #39544167
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
Staxcheck на наличие латиницы/триггер с трансляцией
Стас, а ведь ещё есть юникод....
...
Рейтинг: 0 / 0
30.10.2017, 10:57
    #39544241
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение по varchar
envStaxcheck на наличие латиницы/триггер с трансляцией
Стас, а ведь ещё есть юникод....
check на юникод не сработает?
Код: plsql
1.
2.
3.
4.
5.
6.
NLS_CHARACTERSET	AL32UTF8

create table t (n varchar2(20) check (translate(n,'шcoa','ш')=n));

insert into t(n) values ('cоса' )
ORA-02290: check constraint (STAX.SYS_C0065811878) violated


.....
stax
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сравнение по varchar / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]