powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Пустая строка в базе
29 сообщений из 29, показаны все 2 страниц
Пустая строка в базе
    #39374328
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В одной задаче нужно сохранять и различать null и пустую строку в текстовом поле.
Подскажите, как это лучше сделать? Использовать в качестве пустой строки текст, который не будет встречаться в нормальных данных?
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39374340
Фотография AlexFF__|
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

CLOB
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39374812
Фотография Jebrail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривая задача .
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39374846
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JebrailКривая задача .почему кривая?
Отчество null - неизвестно
Отчество "пустая строка" - известно, что отсутствует
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39374925
фыва123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreymxОтчество "пустая строка" - известно, что отсутствует
N/A ?
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39374929
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фыва123andreymxОтчество "пустая строка" - известно, что отсутствует
N/A ?этот народ - такие сволочи
вдруг придумают отчество N/A
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39374940
chr(0)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreymxОтчество null - неизвестно
Отчество "пустая строка" - известно, что отсутствуетВо-первых, в интерфейсе "неизвестно" от "отсутствует" тоже придетсяо отличать. Во-вторых, типичные операции над отчеством - соединить через пробел в ФИО или взять первую букву и приписать точку. Что с пустой строкой, что со спецстрокой, городить case.
То есть принципиальной пользы от пустой строки нет.
Зато другая сторона граблей - необходимость во всех остальных случаях проверять X is null or X=''.
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39374994
dbwr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так то для varchar в oracle '' и null эквивалентны

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
  1  declare
  2    x varchar2(100) := '';
  3  begin
  4    if x is null then
  5      dbms_output.put_line('x is null');
  6    end if;
  7* end;
  8  /
x is null




Дополнительный столбец 0/1 ?
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375044
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chr(0)Во-вторых, типичные операции над отчеством
Речь не про отчество.
Оборудование принимает набор параметров, один из параметров отвечает за назначение адреса. Возможны три варианта:
1. Параметр в наборе отсутствует — назначается произвольный адрес из пула допустимых значений.
2. Параметру задано значение адреса — назначается выделенный адрес из пула зарезервированных значений.
3. Параметр в наборе присутствует, но значение не задано — назначается произвольный адрес и этот адрес в дальнейшем резервируется.
Пустая строка как раз под третий случай подходит.
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375068
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.chr(0)Во-вторых, типичные операции над отчеством
Речь не про отчество.
Оборудование принимает набор параметров, один из параметров отвечает за назначение адреса. Возможны три варианта:
1. Параметр в наборе отсутствует — назначается произвольный адрес из пула допустимых значений.
2. Параметру задано значение адреса — назначается выделенный адрес из пула зарезервированных значений.
3. Параметр в наборе присутствует, но значение не задано — назначается произвольный адрес и этот адрес в дальнейшем резервируется.
Пустая строка как раз под третий случай подходит.а налл чем не подходит?
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375079
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxа налл ...
см. п.1
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375082
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.chr(0)Во-вторых, типичные операции над отчеством
Речь не про отчество ..
понятное дело, что речь про матчасть
про матчасть и речь
например, можете определить default
Код: plsql
1.
create table blabla (a varchar2(100) default chr(0));


и на тот default ловить ваш случай (пустоты, которая не .. совсем .. тьфу)
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375090
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viewerandreymxа налл ...
см. п.1тогда что означает фраза "Параметр в наборе отсутствует"?
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375127
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Параметр (a2) в наборе отсутствует:
Код: plaintext
1.
2.
a1=v1
a3=v3

2. Параметр (a2) задан:
Код: plaintext
1.
2.
3.
a1=v1
a2=v2
a3=v3

3. Параметр (a2) присутствует, но не задан:
Код: plaintext
1.
2.
3.
a1=v1
a2=
a3=v3
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375137
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.1. Параметр (a2) в наборе отсутствует:
Код: plaintext
1.
2.
a1=v1
a3=v3

2. Параметр (a2) задан:
Код: plaintext
1.
2.
3.
a1=v1
a2=v2
a3=v3

3. Параметр (a2) присутствует, но не задан:
Код: plaintext
1.
2.
3.
a1=v1
a2=
a3=v3


andreymxа налл чем не подходит?
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375154
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxа налл чем не подходит?
... потому что, видимо, трактовка выглядит так
andreymxОтчество null - неизвестно отсутствует
Отчество "пустая строка" - известно, что отсутствует неизвестно
?
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375155
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как тогда различить варианты 1 и 3?
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375156
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.А как тогда различить варианты 1 и 3?
... используйте, скажем, 0 и 1 :) - какая разница, какие значения в коде обрабатывать
?
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375158
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viewer,

помню, как-то нашёл в одной UDF:
0 - найдено, null - не найдено
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375198
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Использовать в качестве пустой строки текст, который не будет встречаться в нормальных данных ?
... напомнило... для мониторинка использовался IPMonitor, для контроля, что портал дышит, он вызывал на портале веб-метод, который формировал страничку, в которую вставлялcя некий признак успешности.
IPMonitor анализировал код странички на предмет соответсующего признака.
Так как код станички оказался сборищем раздельных и нечленораздельных символов, среди которых можно было много чего найти, остановились на следующем наборе символов удачной операции - ye$_g00d_:)
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375202
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viewerостановились на следующем наборе символов удачной операции - [b]ye$_g00d_:)
Вот как раз этого я и хотел бы избежать, хотя в моем случае список нормальных значений формализован хорошо и можно использовать, например, минус "-".
Но и дополнительный столбец бы использовать не хотелось.
CLOB не очень удобен, но для задачи подходит.
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375279
Alibek B.Но и дополнительный столбец бы использовать не хотелось.
Проектировать структуры хранения нужно явным образом, а не на подразумеваниях.
Если есть таковая бизнес-необходимость, то нужно создавать флаг-поле "this_value_setted" char(1) not null check "this_value_setted" in ('Y','N') [default ...] и накидывать на таблицу соответствующий чек decode(this_value_setted, 'N', "this_value") is null, а не изобретать велосипедов с квадратными колесами.
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375294
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offtop
проектирование базвелосипед с квадратными колесами
... велотренажёр
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375346
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теория без практики мертва и бесплодна.

Есть в одной отрасли задача учета и управления ресурсами.
Для автоматизации этой задачи есть много различного софта, но нормального нет.
Как правило существующий софт заточен под бизнес-процессы конкретного предприятия (собственно он из этого предприятия и вырос) и на других предприятиях им пользоваться неудобно или невозможно.
Также есть некоторое количество более универсального софта, который теоретически может автоматизировать нужные процессы, но в как правило все равно требуется дорогая кастомная доработка и из-за того, что архитекторы/программисты далеки от отрасли, использовать этот софт неудобно, он требует в несколько раз больших трудозатрат, чем ведение учета вручную, на бумажках и в Excel. Обычно на тех предприятиях, которые сильно переросли учет вручную, подобный софт является самописным.
Пару лет назад сообщество энтузиастов начало разрабатывать опенсорсный продукт, который предназначен для немного других задач, но также позволяет вести учет и управление ресурсами. Сейчас его даже ряд предприятий использует в работе, хотя продукт пока сыроват и недоработан, но зато он архитектурно довольно качественно продуман.
Какое-то время назад у меня были мысли самому написать данный софт, я продумал его архитектуру и она была достаточно продуманной (это я уже задним числом вижу), универсальной и расширяемой. Но когда я начал было его реализовать, то понял, что лучше за это не браться, слишком много времени у меня эта задача будет забирать в ущерб основной деятельности.

А еще есть другой продукт, написанный на PHP с базой данных MySQL. Написан он ужасно во всех отношениях, на это хватает даже моих умеренных познаний, когда приходится просматривать код или структуру БД, мне просто глаза режет и приходится бороться с желанием начать все исправлять. В программном коде использованы все шаблоны из книги «как не нужно писать программы» (сборка SQL-запроса в строку без экранирования, перемешивание HTML с кодом и т.п.), а в БД вполне обычным будет join по CSV-данным в TEXT-поле.
Однако этот продукт работает, он удобен в использовании и практичен, так как разрабатывался с участием отраслевых специалистов.
И я его купил и пользуюсь им, несмотря на то, что есть гораздо более архитектурно правильные и качественно запрограммированные альтернативы.

Поэтому квадратность колес на практике никакой существенной роли не играет.
Если транспорт едет с нужной скоростью и нужными параметрами, то пусть у него будут колеса треугольные или сферические, это мало кому интересно.
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375377
Alibek B.Написан он ужасно во всех отношениях
...
Однако этот продукт работает
...
Поэтому квадратность колес на практике никакой существенной роли не играет.
Ну и нафига ты тогда тут развел эти стоны "Что же делать?" с горестным заламыванием рук развел?
К чему?
Говнокодь как получится и чтобы работало и не парься...
Будь "нацелен на результат" (tm)!
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375456
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проектирование базНу и нафига ты тогда тут развел эти стоны "Что же делать?" с горестным заламыванием рук развел?
Нужно уметь принимать фактическое положение дел.
И не обижаться, когда выстраданные советы оказались неприменимы.
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375469
Alibek B., нужно тупо быдлокодить дальше, а не спрашивать совета, если ответом на совет будет - "Хрню вы насоветовали, всё равно сделаю по своему!"
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375504
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тоже не думаюесли ответом на совет будет - "Хрню вы насоветовали, всё равно сделаю по своему!"
Какая буйная фантазия.
В этой теме моих постов ровно четыре (не считая стартового и предыдущего поста).
В двух из них я пояснял примером, в каких случаях у меня могут различаться null и '', в одном из них я спросил пояснение, и еще в одном сообщил, что рассматриваю совет с CLOB.
Однако этого было достаточно, чтобы увидеть в моих ответах "хрню вы насоветовали" (это видимо относится к моим примерам?) и "всё равно сделаю по своему" (это, очевидно, относится к сообщению попробовать совет с CLOB).
С таким талантом нужно сюжет к комиксам придумывать.
...
Рейтинг: 0 / 0
Пустая строка в базе
    #39375756
Alibek B.советы оказались неприменимы.Неприменимы потому что ты не собираешься их применять?
Ты и правда считаешь что это проблема посоветовавшего?
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Пустая строка в базе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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