Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Пустая строка в базе / 25 сообщений из 29, страница 1 из 2
24.12.2016, 12:05
    #39374328
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
В одной задаче нужно сохранять и различать null и пустую строку в текстовом поле.
Подскажите, как это лучше сделать? Использовать в качестве пустой строки текст, который не будет встречаться в нормальных данных?
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
24.12.2016, 12:44
    #39374340
AlexFF__|
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
Alibek B.,

CLOB
...
Рейтинг: 0 / 0
25.12.2016, 16:44
    #39374812
Jebrail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
Кривая задача .
...
Рейтинг: 0 / 0
25.12.2016, 18:58
    #39374846
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
JebrailКривая задача .почему кривая?
Отчество null - неизвестно
Отчество "пустая строка" - известно, что отсутствует
...
Рейтинг: 0 / 0
25.12.2016, 23:24
    #39374925
фыва123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
andreymxОтчество "пустая строка" - известно, что отсутствует
N/A ?
...
Рейтинг: 0 / 0
25.12.2016, 23:42
    #39374929
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
фыва123andreymxОтчество "пустая строка" - известно, что отсутствует
N/A ?этот народ - такие сволочи
вдруг придумают отчество N/A
...
Рейтинг: 0 / 0
26.12.2016, 00:17
    #39374940
chr(0)
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
andreymxОтчество null - неизвестно
Отчество "пустая строка" - известно, что отсутствуетВо-первых, в интерфейсе "неизвестно" от "отсутствует" тоже придетсяо отличать. Во-вторых, типичные операции над отчеством - соединить через пробел в ФИО или взять первую букву и приписать точку. Что с пустой строкой, что со спецстрокой, городить case.
То есть принципиальной пользы от пустой строки нет.
Зато другая сторона граблей - необходимость во всех остальных случаях проверять X is null or X=''.
...
Рейтинг: 0 / 0
26.12.2016, 08:24
    #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
26.12.2016, 10:10
    #39375044
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
chr(0)Во-вторых, типичные операции над отчеством
Речь не про отчество.
Оборудование принимает набор параметров, один из параметров отвечает за назначение адреса. Возможны три варианта:
1. Параметр в наборе отсутствует — назначается произвольный адрес из пула допустимых значений.
2. Параметру задано значение адреса — назначается выделенный адрес из пула зарезервированных значений.
3. Параметр в наборе присутствует, но значение не задано — назначается произвольный адрес и этот адрес в дальнейшем резервируется.
Пустая строка как раз под третий случай подходит.
...
Рейтинг: 0 / 0
26.12.2016, 10:38
    #39375068
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
Alibek B.chr(0)Во-вторых, типичные операции над отчеством
Речь не про отчество.
Оборудование принимает набор параметров, один из параметров отвечает за назначение адреса. Возможны три варианта:
1. Параметр в наборе отсутствует — назначается произвольный адрес из пула допустимых значений.
2. Параметру задано значение адреса — назначается выделенный адрес из пула зарезервированных значений.
3. Параметр в наборе присутствует, но значение не задано — назначается произвольный адрес и этот адрес в дальнейшем резервируется.
Пустая строка как раз под третий случай подходит.а налл чем не подходит?
...
Рейтинг: 0 / 0
26.12.2016, 10:43
    #39375079
Viewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
andreymxа налл ...
см. п.1
...
Рейтинг: 0 / 0
26.12.2016, 10:45
    #39375082
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
Alibek B.chr(0)Во-вторых, типичные операции над отчеством
Речь не про отчество ..
понятное дело, что речь про матчасть
про матчасть и речь
например, можете определить default
Код: plsql
1.
create table blabla (a varchar2(100) default chr(0));


и на тот default ловить ваш случай (пустоты, которая не .. совсем .. тьфу)
...
Рейтинг: 0 / 0
26.12.2016, 10:51
    #39375090
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
Viewerandreymxа налл ...
см. п.1тогда что означает фраза "Параметр в наборе отсутствует"?
...
Рейтинг: 0 / 0
26.12.2016, 11:22
    #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
26.12.2016, 11:32
    #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
26.12.2016, 11:52
    #39375154
Viewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
andreymxа налл чем не подходит?
... потому что, видимо, трактовка выглядит так
andreymxОтчество null - неизвестно отсутствует
Отчество "пустая строка" - известно, что отсутствует неизвестно
?
...
Рейтинг: 0 / 0
26.12.2016, 11:53
    #39375155
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
А как тогда различить варианты 1 и 3?
...
Рейтинг: 0 / 0
26.12.2016, 12:00
    #39375156
Viewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
Alibek B.А как тогда различить варианты 1 и 3?
... используйте, скажем, 0 и 1 :) - какая разница, какие значения в коде обрабатывать
?
...
Рейтинг: 0 / 0
26.12.2016, 12:03
    #39375158
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
Viewer,

помню, как-то нашёл в одной UDF:
0 - найдено, null - не найдено
...
Рейтинг: 0 / 0
26.12.2016, 12:38
    #39375198
Viewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
Alibek B.Использовать в качестве пустой строки текст, который не будет встречаться в нормальных данных ?
... напомнило... для мониторинка использовался IPMonitor, для контроля, что портал дышит, он вызывал на портале веб-метод, который формировал страничку, в которую вставлялcя некий признак успешности.
IPMonitor анализировал код странички на предмет соответсующего признака.
Так как код станички оказался сборищем раздельных и нечленораздельных символов, среди которых можно было много чего найти, остановились на следующем наборе символов удачной операции - ye$_g00d_:)
...
Рейтинг: 0 / 0
26.12.2016, 12:41
    #39375202
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
Viewerостановились на следующем наборе символов удачной операции - [b]ye$_g00d_:)
Вот как раз этого я и хотел бы избежать, хотя в моем случае список нормальных значений формализован хорошо и можно использовать, например, минус "-".
Но и дополнительный столбец бы использовать не хотелось.
CLOB не очень удобен, но для задачи подходит.
...
Рейтинг: 0 / 0
26.12.2016, 13:51
    #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
26.12.2016, 14:01
    #39375294
Viewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
offtop
проектирование базвелосипед с квадратными колесами
... велотренажёр
...
Рейтинг: 0 / 0
26.12.2016, 15:03
    #39375346
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пустая строка в базе
Теория без практики мертва и бесплодна.

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

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

Поэтому квадратность колес на практике никакой существенной роли не играет.
Если транспорт едет с нужной скоростью и нужными параметрами, то пусть у него будут колеса треугольные или сферические, это мало кому интересно.
...
Рейтинг: 0 / 0
26.12.2016, 15:30
    #39375377
Пустая строка в базе
Alibek B.Написан он ужасно во всех отношениях
...
Однако этот продукт работает
...
Поэтому квадратность колес на практике никакой существенной роли не играет.
Ну и нафига ты тогда тут развел эти стоны "Что же делать?" с горестным заламыванием рук развел?
К чему?
Говнокодь как получится и чтобы работало и не парься...
Будь "нацелен на результат" (tm)!
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Пустая строка в базе / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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