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

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

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

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

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

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

пример с char и number?

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

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

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


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

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

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

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

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

на всех не угодишь, не понял - прошёл мимо
понять тебя могут не только лишь все
...
Рейтинг: 0 / 0
Сравнение по varchar
    #39543487
Бракованный финский угорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Сравнение по varchar
    #39543494
Lary Denis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igor_alexна всех не угодишь, не понял - прошёл мимо


Если бы на этом форуме все жили по этому правилу, то ни на одну тему, созданную тобой, не было бы ни одного ответа.
Извини, я пошел мимо.
...
Рейтинг: 0 / 0
Сравнение по varchar
    #39543682
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бракованный финский угорь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
Сравнение по varchar
    #39543872
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igor_alex,

если я правильно вас понимаю, вы решаете, каким сделать поле: числовым или текстовым.
Сомневаетесь, что поиск по текстовому полю будет дольше. А если оно проиндексовано?
Еще один момент: почему бы не сделать поле числовым с FOREIGN KEY на таблицу, в которой спокойно можно расшифровать числовые коды и даже отображать эти тексты запросом с JOIN
...
Рейтинг: 0 / 0
Сравнение по varchar
    #39544167
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxcheck на наличие латиницы/триггер с трансляцией
Стас, а ведь ещё есть юникод....
...
Рейтинг: 0 / 0
Сравнение по varchar
    #39544241
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
19 сообщений из 19, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сравнение по varchar
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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