Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Разделение одного поля на два / 25 сообщений из 34, страница 1 из 2
26.12.2016, 15:39
    #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
26.12.2016, 15:42
    #39375386
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение одного поля на два
akrushЕсть 2 таблицы:где ключи?
и нахрена юзать SMALLINT ?
...
Рейтинг: 0 / 0
26.12.2016, 15:48
    #39375388
akrush
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение одного поля на два
Мимопроходящий,

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

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как многие уже отметили, разделение полей нужно делать на клиенте перед Insert. В FB сложновата сия операция.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Разделение одного поля на два / 25 сообщений из 34, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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