![]() |
Модераторы: LSD Страницы: (144) « Первая ... 11 12 [13] 14 15 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Это может быть не только поле, но и результат substr или trim. Почему 0 может характеризовать что-то отличное от неопределенности, а пустая строка - нет? Плюс абзац был посвящен вовсе не пустым строкам, но ты почему-то полностью проигнорировал все что написано дальше. Ожидаемый это не только привычки, но и поведение других типов. Почему для чисел 0 и null это разные вещи? Почему в CLOB или RAW пустая строка и null это разные вещи? Что ты тут со своим Дельфи, не видишь у нас тут уже ораклосрач ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Zloxa |
|
||||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 4 Всего: 161 |
И substr и trimm могут быть применены к nullable значению. Потому на то, что в результате будет is null все равно, как правило, приходится закладываться. На счет результата тримма от заведомо определенного значения, что правильнее вернуть null или '', действительно не столь уж и очевидно. Но с сабстром.... Он вернет null лишь в том случае, если ты у него запросишь то, неведомо что. Неопределеность, в этом случае, мне кажется, куда ближе соответствует естественной логике нежели пустая строка. Весьма же нелепый тезис. Если мы будем основывать свои ожидания на поведенческих особенностях других типов, дождемся что в результате "100"+"500" в результате станем ожидать"600".
У меня нет практики работы с системой, где null эквивалентно 0. Я не могу оценить эту идею. У меня есть практика работы с системой, где null эквивалентно ''. И мне действительно не понятно что вызывает такой сильный анальный зуд. Неудобства эта особенность особого не доставляет. Профит, хоть и не бессомненный, от этого, какой, да есть. Причины с этим что-то срочно делать, для меня далеко не очевидны. Оснований назвать это прям уж таки порочной практикой у меня - нет. На этом и строятся мои сомнения в действительной полезности такого понятия, как пустая строка. Твои же попытки раскрыть ее несомненную пользу, пока, я оцениваю как тщетные.
Я тебе начал было отвечать на тот абзац, но получилось уныло и не интересно. Я вообще не понимаю о чем тут сраться. Я не нахожу что продукты оракла являются верхом эстетики. Скорее наоборот. Я согласен с тем, что у оракла весьма дурной вкус. ![]() Это сообщение отредактировал(а) Zloxa - 29.3.2012, 17:21 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
||||
|
|||||
RockClimber |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
![]() Вот это я и называю "вторая волна". Я не видел новых Delphi холиваров года три наверно, только догорающие старые, а тут последние полгода они что-то растут как грибы после дождя... А еще я хотел спросить, что же может доказать "жизнь", если наличие вакансий и продажи средств разработки не доказывают. Но побоялся оскорбить чужие религиозные чувства. -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
RockClimber |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
Вот, кстати, к вопросу о том, "за что не любят делфи": Дэлфи разве мертв? Очень показательна критика некоторых товарищей, которые искренне считают, что их любимые крутейшие фичи появились именно в дотнете, а не в delphi десятью годами ранее
![]() -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
RockClimber, у LSD и Zloxa уже сраз пошёл в другую тему, как мне показалось
![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
substr и trimm от неопределенного значения должны вернуть неопределенной значение или выкинуть эксепшн (смотря что поддерживается языком). substr и trimm при корректных параметрах должны вернуть конкретное значение. Т.е. если запросили substr(5, 0) то и вернутся должна пустая строка или должно быть отдельно оговорено в контракте substr() что length должен быть строго больше нуля иначе будет эксепшн. 1. На самом деле твой пример содержит ошибку (или это сознательное мухлевание? ![]() ![]() 2. По твоей логике мы не должны ожидать что результат сложения целых и дробных чисел будет одинаков, типы данных то разные. 3. Есть тип CLOB, который от VARCHAR2 отличается только реализацией, почему там другое поведение?
А какие еще СУБД/ЯП реализуют подобную логику? Как думаешь почему? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: нет Всего: 15 |
Вам не надоело строчить столько текста друг другу?
![]() -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
Zloxa |
|
||||||||||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 4 Всего: 161 |
А какие ЯП(кроме SQL) реализуют трехзначную логику? ![]() Стоит ли лишь на этом основании срать кирпичами на SQL, требовать сделать как у всех нормальных языков, чтоб LSD удобно было? Почему именно пустая строка? Это же абсурд! Должно вернуться не определенное значение. Это же логично!
Если в документации оговорено что "If substring_length is less than 1, then Oracle returns null.", то, как бе все по контракту и получается что все пучком ![]() Кому должны, LSD? И почему должны? Потому что так сделано в яве? Потому что так сделано у майкрософта? Потому что тебе так привычно? ![]()
Сложение может и будет одинаково. Но вот деление, по твоей логике, должно бы работать тоже одинаково?
:facepalm Кстати, для меня такое поведение - действительно неожиданность. Я привык в результате деления целых получать дробное.
Клоб, чар и варчар это совершенно разные типы, имеют различное предназначение, различную механику и нет ничего странного в том, что они имеют разную специфику. Почему ты не находишь странным ожидать от чара поведения подобного варачару, но не находишь странным ожидать того же от клоба? ![]() Это сообщение отредактировал(а) Zloxa - 30.3.2012, 13:46 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
||||||||||
|
|||||||||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 4 Всего: 161 |
Нуи, в общем, так....
Мне не нравится что наша дискусия перешла в русло очевидных для меня вещей. Я бы был более склонен обсудить вещи для меня не столь очевидные. В частности - разница null и "". Я, привыкнув к ораклу, действительно ее перестал улавливать. И чтобы ее уловить(или же убедиться что ее нет), мне таки требуется стороннее мнение. - Я не нахожу принципиальной разницы в том, используем ли мы четыре буквы или два символа для обозначения суть одного и того же. - Я не нахожу неудобным то, что взятие функции length от null возвращает null. Там, где нужно получить 0 вместо null, ничего не мешает использовать nvl - Меня очень радует, что конкатенация с null в результате дает не null а эквивалент конкатенации с пустой строкой. В системах, где null не эквивалентен пустой строке, это, временами, несколько усложняет жизнь, а профит от этого для меня не очевиден. Конкатенацию строк мне доводится пользовать много чаще расчета длины строки. - Меня очень радует, что после отображения строки в элементе управления, по команде пользователя "сохранить", мне не надо думать о том, как ее сохранять: как null, каким это значение было до того, как было помещено в элемент управления, или же как пустую строку, которая хранится в элементе управления. Я действительно не способен смоделировать ситуации, когда различение null и пустой строки - принципиально. По этой причине я нахожу лишним одно из двух. Либо строки не должны быть nullable, либо строки, в принципе не должны быть пустыми. Варианты, в принципе, равнозначны, у каждого есть плюсы, у каждого есть минусы. Ненулобельная строка всегда будет считаться count'ом и сохраняться в индексе, что очень досадно. В то же время для nullaбельной строки length может вернуть null, что тоже досадно, но имхо - не на столько же. Это сообщение отредактировал(а) Zloxa - 30.3.2012, 14:29 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
У них просто работы нет ![]() |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
10 страниц оффтопа про nil и пустую строку. МОГЁТЕ!
![]() -------------------- |
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Не передергивай, там еще и СУБД упоминались. В каких СУБД кроме Оракла пустая строка эквивалентна null? И какое отношения эквивалентность '' и null имеет к трехзначной логике?
Опиши контракт полностью и нелогичность станет очевидна ![]()
Наверно я тебя удивлю, но деление бывает двух видов: целочисленное и дробное. Для разных типов может использоваться разное деление как в Java/C++ или одно и то же как в Deplhi. Но поведение деления одинаково для byte/short/int/long и для float/double. И в чем же принципиальная разница между CLOB и VARCHAR2? (ограничения на максимальную длинну, методы по работе с типом и т.д., это не принципиальные ограничения, это детали реализации) -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 4 Всего: 161 |
Никакое. Вопрос был задан для того, чтобы показать абсурдность аппеляций к аналогам, которые ты так настойчиво приводишь. Зачем ораклу делать как делают все? Да, оракл выпендрился. Но он выпендрился не только тут. Очень много его выпендрежа в конце концов оказалось стандартизовано. Многое из его выпендрежа оказалось не принято обществом. Да, фича, о которой мы говорим - спорная. Ну давай обсудим, чего нас эта фича лишает, что нам эта фича дает. Зачем нам опираться на стереотипы и шаблоны? Может быть там, у них, к кому ты аппелируешь, все не правильно? Зачем сводить все к тому, что сотни мух не могут ошибаться? Я не понял о чем ты говоришь. Наверное я тебя удивлю, но строки бывают разных типов.. для разных типов может.... бла бла бла.... В чем принципиальная разница null и ''? Это сообщение отредактировал(а) Zloxa - 30.3.2012, 15:50 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Тут более уместна другая аналогия: "Вся рота идет не в ногу, один прапорщик в ногу".
Если добавить сюда замечание насчет того что If length of the substring is zero, than null would be returned это будет выглядеть как явное исключение из общего правила. Ради чего нарушать единообразие?
Расскажи поподробней про разные типы строк. Расскажу, но после того как ты ответишь на вопрос. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 4 Всего: 161 |
Ради чего его соблюдать? Клоб - не строка. Сравнивать варчар с клобом, имхо, все равно что сравнивать строку со стримом или с чем то вроде. Может не самая лучшая аналогия, но в целом - как то так. Clob, объявленный как переменная, переменной по факту не явлется. Он является локатором, посредством которого ты можешь получить доступ к этим неким текстовым данным. То же самое и в таблице. Ты бы стал задаваться вопросом в чем разница между строкой и чарактерстримом? Просто ли бы тебе было сформулировать эту разницу, если бы ответ на этот идиотский вопрос с тебя настойчиво требовали? Как смог - рассказал. Жду. Это сообщение отредактировал(а) Zloxa - 30.3.2012, 17:47 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |