Конференция "Прочее" » Отождествление пустой строки и NULL
 
  • McSimm © (01.07.08 18:14) [80]

    > И, кстати о конкатенациях, сколько значений "АА" содержится
    > в строке "АААА" - два или три ?

    Правильный ответ - ни одного
  • Поросенок Винни-Пух © (01.07.08 18:19) [81]
    И, кстати о конкатенациях, сколько значений "АА" содержится в строке "АААА" - два или три ?

    Если строка получена конкатенацией двух литералов 'AA', то там их две.
    А я предлагаю определить то же самое для строки 'AAAA', полученной конкатенацией '' и 'A'
  • McSimm © (01.07.08 18:22) [82]
    I've given up... At least until you've counted zeroes in the number 17 that is the sum of numbers 0 and 1...
  • Поросенок Винни-Пух © (01.07.08 18:25) [83]
    не нравится конкатенация?
    могу по другому:
    открываем между собой тсп соединение, или создаем поток.
    я делаю туда икс раз writebuff с пустой строкой, а ты считаешь сколько раз я это сделал.

    и не вижу проблем. это же такое же "равноправное" значение как и все остальные строки.
  • Поросенок Винни-Пух © (01.07.08 18:33) [84]
    I've given up... At least until you've counted zeroes in the number 17 that is the sum of numbers 0 and 1...

    сколько раз был записан в поток нулевой байт или нулевой word, dword etc я могу определить. а вот определи сколько раз я записал на носитель пустую строку.
    слабо?
  • McSimm © (01.07.08 18:53) [85]

    > и не вижу проблем

    Я вижу, но это офтопик.

    Контейнер для значения какого-либо типа это переменная или поле базы данных.
    Количество значений в одном контейнере всегда одно.

    Последняя попытка, чесслово :)

    Пишем в буфер обычные равноправные строки "А" и "АА" и считаем.
  • Поросенок Винни-Пух © (01.07.08 19:13) [86]
    нет, уловки не прокатят. :)
    в случае с буфером и "A" и "AA" по крайней мере можно определить, что хотя бы одно значение было записано в буфер.
    с пустой строкой это не пройдет.
    просто потому, что это никакое не "равноправное" значение строкового типа, а совершенно особенное. и его-то и использует оракл для строкового нула.
  • Ega23 © (01.07.08 19:17) [87]
    А при Join - что должно приходить?
  • pasha_golub © (01.07.08 19:23) [88]

    > Поросенок Винни-Пух ©   (01.07.08 19:13) [86]

    Почему Оракл не использует 0 для нулла?
  • Anatoly Podgoretsky © (01.07.08 19:25) [89]
    > Поросенок Винни-Пух  (01.07.2008 17:37:07)  [67]

    Не понял, что именно ты имеешь в виду, но что ты скажешь про это Count(*) - Count(Field)
  • McSimm © (01.07.08 19:26) [90]

    > в случае с буфером и "A" и "AA" по крайней мере можно определить,
    >  что хотя бы одно значение было записано в буфер.

    Понятно, меняем условия на ходу. Смысла все меньше.
    А я хочу определять хотя бы два.


    > никакое не "равноправное" значение строкового типа, а совершенно
    > особенное. и его-то и использует оракл для строкового нула.

    Абсолютно любое значение можно назвать особенным.
    Любое значение можно было бы выбрать для индикации NULL, но пустая строка больше всех подходит для этого.

    С тем же успехом можно доказывать уникальность значения "-1"
  • Anatoly Podgoretsky © (01.07.08 19:30) [91]
    > McSimm  (01.07.2008 18:13:18)  [78]

    Если про конкатенацию, то возможно ни одного.
    А зачем пытаться делать обратно из фарша корову?
  • Поросенок Винни-Пух © (01.07.08 19:40) [92]
    Почему Оракл не использует 0 для нулла?

    Потому что это действительно равноправное целочисленное значение среди других значений целых
  • Anatoly Podgoretsky © (01.07.08 19:43) [93]
    > Поросенок Винни-Пух  (01.07.2008 19:13:26)  [86]

    Ошибаешься, для строки АААА определить сколько раз было записано АА невозможно, это невозможно даже строки АА
    И никакого отношения к NULL и пустым строкам это не имеет отношения, это совершенно другой закон математики. Вроде бы транзитивность, не помню точное название термина.
    Я для тебя дам несложную задачку - есть число, получено суммой трех чисел, каждое из которых больше нуля. Результат равен 1234567890. Чему равны A B C,  Я тебе даже упрощаю задачу, я тебе назову одно из них, это два, а ты назови оставшие два. Попробуй сделать корову.
  • Поросенок Винни-Пух © (01.07.08 19:46) [94]
    Ошибаешься, для строки АААА определить сколько раз было записано АА невозможно, это невозможно даже строки АА

    Извращенный пример.
    Я же согласился, что с конкатенацией пример не очень удачен.

    Вот пример удачный.
    Берем двух экспериментаторов и две совершенно детерминированные строки. Обе известны обеим участникам эксперимента заранее.
    Один делает writebuff, другой определяет сколько раз было записано значение в поток.
    одна строка пустая, другая нет.
 
Конференция "Прочее" » Отождествление пустой строки и NULL
Есть новые Нет новых   [134439   +39][b:0.001][p:0]