powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Разделение одного поля на два
34 сообщений из 34, показаны все 2 страниц
Разделение одного поля на два
    #39375384
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Есть 2 таблицы:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
RECREATE TABLE IN_OPLATA (
    OS_R       VARCHAR(10) CHARACTER SET win1251,
    ADR        VARCHAR(35) CHARACTER SET win1251,
    KODSTREET  SMALLINT,
    N_BUD      VARCHAR(5) CHARACTER SET win1251,
    N_KV       VARCHAR(5) CHARACTER SET win1251,
    TARYF_KV   DECIMAL(10,4),
    JEC_NOM    VARCHAR(6) CHARACTER SET win1251
);

RECREATE TABLE IN_OPLATA_WORK (
    OS_R       VARCHAR(10) CHARACTER SET win1251,
    ADR        VARCHAR(35) CHARACTER SET win1251,
    KODSTREET  SMALLINT,
    N_BUD1     SMALLINT,
    N_BUD2     VARCHAR(5) CHARACTER SET win1251,
    N_KV1      SMALLINT,
    N_KV2      VARCHAR(5) CHARACTER SET win1251,
    TARYF_KV   DECIMAL(10,4),
    JEC_NOM    SMALLINT
);




В таблицу IN_OPLATA загружаю данные из ДБФ.
В таблице IN_OPLATA_WORK нужно разделить:
1. Номер дома на цифровое и текстовое значение. т.е. номер дома начинается на цифру, как только находим не цифру - все остальные символы в соседний столбик. In_oplata.n_bud=in_oplata_work.n_bud1+in_oplata_work.n_bud2

Тоже самое нужно сделать с полем N_KV.

Суть вопроса: Можно ли это сделать ХП и если не сложно пример для разделения 1 поля. Второе поле будет точно также.


--------------------------
Firebird 2.5;
Windows 10 32-bit;
4Gb RAM;
SSD 512Mb + HDD 1 Tb;
Настройки по умолчанию
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375386
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrushЕсть 2 таблицы:где ключи?
и нахрена юзать SMALLINT ?
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375388
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

Про ключи забыл. Я их еще не создал :(
Советы принимаются.
Потом я планирую сделать вот это:
Как определить/получить диапазон
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375394
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо, тут программист нужен (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375395
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrushСоветы принимаются.

Заведи себе персональный топег "Моя пупер-база" и храни в нем все свои глупости и мудрые встАвляния.
И не мусори по всему FB...
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375400
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrushСуть вопроса: Можно ли это сделать ХП и если не сложно пример для разделения 1 поля. Второе поле будет точно также.


Можно
зы. в цикле посимвольно анализируй строку
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375401
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrushВ таблицу IN_OPLATA загружаю данные из ДБФ.
Обработка данных должна быть на этапе загрузки.
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375403
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanОбработка данных должна быть на этапе загрузки.+1
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375408
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanakrushВ таблицу IN_OPLATA загружаю данные из ДБФ.
Обработка данных должна быть на этапе загрузки.
Прям всегда и везде ???

зы. как по мне, то на этапе загрузки никаких (от слова совсем) обработок не должно быть
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375415
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7makrushСуть вопроса: Можно ли это сделать ХП и если не сложно пример для разделения 1 поля. Второе поле будет точно также.


Можно
зы. в цикле посимвольно анализируй строку

Можете подсказать функции для анализа
И можно ли внутри процедуры циклом перебрать посимвольно строку.
По крайней мере в Делфи я бы в переменную прочитал значение столбца, потом посимвольно нашел бы нецифру и запомнил позицию.
Затем в 2 переменные сделал бы копирование: в первую с преобразованием в число от начала до позиции, во вторую остальное.

Это в Делфи, я знаю как.
А как подобное сделать средствами ФБ - еще не умею. :(
Прошу помощи, подсказок в правильном направлении.
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375427
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrush,

SUBSTRING
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375432
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrushЭто в Делфи, я знаю как.
А как подобное сделать средствами ФБ - еще не умею. :(
Прошу помощи, подсказок в правильном направлении.
Ну так и делай как умеешь и не мучь птичку всякой фигней.
Полюбасу в Дельфи для этого возможностей на порядок больше.

Хошь научу как FB будет за тебя получать ЗП?
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375449
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIneпропущено...

Ваши комментарии я наблюдаю в ветке ФБ чуть больше месяц.
Я не знаю как другие, но лично я увидел что-то полезное только в 1-3% ваших сообщений.
Это не считаю того что Ваши сообщения не то что понять, их читать невозможно.

Прошу Вас прекратите засорять обсуждение неконструктивными советами и репликами.
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375451
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,
Спасибо, пошел читать :)
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375455
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrushПрошу Вас прекратите засорять обсуждение неконструктивными советами и репликами.
- Обсуждение? Твоих глуполстей?
Ты слишком высокого мнения о себе.
Тебя пинают в нужном направлении, по одному разу кому не лень, как пинд_вина, и всего делов-та...
А тебе лень взять книшку и/или доку и прочитать.
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375482
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Akrush!
You wrote on 26 декабря 2016 г. 16:56:20:

Akrush> Ваши комментарии я наблюдаю в ветке ФБ чуть больше месяц.
> Я не знаю как другие, но лично я увидел что-то полезное только в 1-3% ваших сообщений.
> Это не считаю того что Ваши сообщения не то что понять, их читать невозможно.ты просто ещё не дорос до этой музыки.
(С) Н.Н.Носов

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375541
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7mкак по мне, то на этапе загрузки никаких (от слова совсем) обработок не должно быть
если обработка исключает данные, которые полезут в БД низачем, то обработки должны быть.
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375548
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvесли обработка исключает данные, которые полезут в БД низачем , то обработки должны быть.
расшифруй мысль
ну то что я подчеркнул
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375558
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

а что расшифровывать-то? не надо сохранять в БД данные, которые могут быть обработаны или отфильтрованы вне БД.
я такой херней (извините за слово) занимался еще в 2000 году.
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375633
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvm7m,

а что расшифровывать-то? не надо сохранять в БД данные, которые могут быть обработаны или отфильтрованы вне БД.
я такой херней (извините за слово) занимался еще в 2000 году.

Что-что
"которые полезут в БД низачем"
Одним из вариантов прочтения был и тот который ты написал

зы. я не буду по этому поводу особо возражать
ибо 20049530 я написал только из-за некоторой категоричности вот этого
"Обработка данных должна быть на этапе загрузки."
не оставляющей никаких сомнений, что возможны и другие варианты

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

И не потому что это правильно и так всегда надо делать, а потому что я к такому привык,
для меня так проще, ибо не надо по каждому изменению в формате загружаемых
данных судорожно менять экзешник отправлять его заказчику....., ну и исторически так сложилось
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375782
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m"Обработка данных должна быть на этапе загрузки."
не оставляющей никаких сомнений, что возможны и другие варианты
Для ТС иных вариантов нет, ибо ХШ чётко сказал, что кодом грузит в одну таблицу.
Так что смысла грузить сервер дополнительной обработкой нет.
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375800
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Хорошо. Если учесть все замечания, то тогда мне разделение на 2 поля нужно делать при Insert'е.
Тогда получается что это нужно делать не ХП, а тригером перед вставкой.
Я правильно понимаю??
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375804
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrushТогда получается что это нужно делать не ХП, а тригером перед вставкой.
Я правильно понимаю??
Кто и как вставляет данные из dbf?
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375848
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Вставку веду через Делфи используя ФИБы
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375849
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrushwadman,

Хорошо. Если учесть все замечания, то тогда мне разделение на 2 поля нужно делать при Insert'е.
Тогда получается что это нужно делать не ХП, а тригером перед вставкой.
Я правильно понимаю??

Как многие уже отметили, разделение полей нужно делать на клиенте перед Insert. В FB сложновата сия операция.
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375860
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrushВставку веду через Делфи используя ФИБы
Ну вот на Делфи и разделяй
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39375861
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrushwadman,
Вставку веду через Делфи используя ФИБы
FB-серверу - перпендикулярно где, как и на чём ты там лабаешь "клиента".
Книшку почитай, да...
3/4 дури в голове и 2/3 дурацких вопросов само собой отвалится.
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39379246
Фотография alex_p_n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ таблице IN_OPLATA_WORK нужно разделить:
1. Номер дома на цифровое и текстовое значение...
Меня дико умиляюит таки, с позволения сказать, "базы данных"...
Если возникла необходимость "разделить поле" - это значит, что БД не нормализована от слова "совсем"!
Т.е. таблица даже не находится в 1НФ!
Может, перед тем как лепить "базу", всё-таки стоило бы подучить "матчасть" - ту же нормализацию, например...
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39379317
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_p_nавторВ таблице IN_OPLATA_WORK нужно разделить:
1. Номер дома на цифровое и текстовое значение...
Меня дико умиляюит таки, с позволения сказать, "базы данных"...
Если возникла необходимость "разделить поле" - это значит, что БД не нормализована от слова "совсем"!
Т.е. таблица даже не находится в 1НФ!
Может, перед тем как лепить "базу", всё-таки стоило бы подучить "матчасть" - ту же нормализацию, например...
Никто не говорил что данные "живут" в базе данных. Это данные импортируются. Там, в импортируемых данных, полный бред. С этим нужно как-то работать. Думал что можно разделить средствами ФБ. Но уже реализовал средствами Делфи.
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39380639
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_p_nМеня дико умиляюит таки, с позволения сказать, "базы данных"...
Если возникла необходимость "разделить поле" - это значит, что БД не нормализована от слова "совсем"!
Т.е. таблица даже не находится в 1НФ!
Может, перед тем как лепить "базу", всё-таки стоило бы подучить "матчасть" - ту же нормализацию, например...

Программистами не рождаются а становятся, набирая опыт.
Идеальных программ не бывает.
Исходные условия меняются и то что не надо было вчера понадобилось сегодня. Оракулов на всех не хватает что бы предусмотреть все варианты наперед.

"Разделить поле" - не самая плохая ситуация, тут хотя бы есть что разделять. Т.е. как минимум эти данные уже привязаны к этой записи. Хуже когда данных вообще нет или они есть в чем-то отдельном и нет критерия как их привязать.
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39380690
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с категоричным заявлением об обработке клиентом почти полностью.

Для тех, кто уже "дорос до классической музыки", всё же нужен намёк на дисклеймер.
Загрузку из DBF методом откусывания заголовка и подкладывания в качестве внешней я таки видел и щупал

Прочтение "постановки задачи" автором тоже вызывает вопросы.
Я сейчас сижу в доме номер "вл1с2".
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39380694
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery> я таки видел и щупал

Оно универсально вообще?
С Кладром/ФИАСом работает?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39380706
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

Нет, не ФИАС и не КЛАДР.
Универсальность примерно около нуля.
Там куча проблем с блокировкой файлов при объявлении и уничтожении внешних таблиц возникала, и чтобы ещё внешний робот откусанные DBF-ы подкладывал...
Сделано для какого-то еженедельного импорта огромнокучи данных, потому что было интересно.

И повторять сей опыт на других задачах импорта сильно расхотелось.
...
Рейтинг: 0 / 0
Разделение одного поля на два
    #39380731
Василий №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex_p_nМеня дико умиляюит таки, с позволения сказать, "базы данных"...
Если возникла необходимость "разделить поле" - это значит, что БД не нормализована от слова "совсем"!
Т.е. таблица даже не находится в 1НФ!
Может, перед тем как лепить "базу", всё-таки стоило бы подучить "матчасть" - ту же нормализацию, например...
Любитель делать справочники на всё, включая имена-отчества-фамилии? :)
Нормализация определяется сущностью. Раньше сущностью был адрес целиком, потом понадобилось его декомпозировать, обычная ситуация.
ТС, проблема в том, что адрес - это не просто "Улица-дом-квартира", а весьма чёртоноголомательная штука. Почитай на хабре статьи про КЛАДР, много полезного узнаешь.
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Разделение одного поля на два
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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