|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
Добрый день. Есть 2 таблицы: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
В таблицу 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; Настройки по умолчанию ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 15:39 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
akrushЕсть 2 таблицы:где ключи? и нахрена юзать SMALLINT ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 15:42 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
Мимопроходящий, Про ключи забыл. Я их еще не создал :( Советы принимаются. Потом я планирую сделать вот это: Как определить/получить диапазон ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 15:48 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
имхо, тут программист нужен (с) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 15:56 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
akrushСоветы принимаются. Заведи себе персональный топег "Моя пупер-база" и храни в нем все свои глупости и мудрые встАвляния. И не мусори по всему FB... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 16:01 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
akrushСуть вопроса: Можно ли это сделать ХП и если не сложно пример для разделения 1 поля. Второе поле будет точно также. Можно зы. в цикле посимвольно анализируй строку ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 16:04 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
akrushВ таблицу IN_OPLATA загружаю данные из ДБФ. Обработка данных должна быть на этапе загрузки. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 16:05 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
wadmanОбработка данных должна быть на этапе загрузки.+1 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 16:06 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
wadmanakrushВ таблицу IN_OPLATA загружаю данные из ДБФ. Обработка данных должна быть на этапе загрузки. Прям всегда и везде ??? зы. как по мне, то на этапе загрузки никаких (от слова совсем) обработок не должно быть ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 16:09 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
m7makrushСуть вопроса: Можно ли это сделать ХП и если не сложно пример для разделения 1 поля. Второе поле будет точно также. Можно зы. в цикле посимвольно анализируй строку Можете подсказать функции для анализа И можно ли внутри процедуры циклом перебрать посимвольно строку. По крайней мере в Делфи я бы в переменную прочитал значение столбца, потом посимвольно нашел бы нецифру и запомнил позицию. Затем в 2 переменные сделал бы копирование: в первую с преобразованием в число от начала до позиции, во вторую остальное. Это в Делфи, я знаю как. А как подобное сделать средствами ФБ - еще не умею. :( Прошу помощи, подсказок в правильном направлении. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 16:18 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
akrush, SUBSTRING ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 16:33 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
akrushЭто в Делфи, я знаю как. А как подобное сделать средствами ФБ - еще не умею. :( Прошу помощи, подсказок в правильном направлении. Ну так и делай как умеешь и не мучь птичку всякой фигней. Полюбасу в Дельфи для этого возможностей на порядок больше. Хошь научу как FB будет за тебя получать ЗП? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 16:37 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
Di_LIneпропущено... Ваши комментарии я наблюдаю в ветке ФБ чуть больше месяц. Я не знаю как другие, но лично я увидел что-то полезное только в 1-3% ваших сообщений. Это не считаю того что Ваши сообщения не то что понять, их читать невозможно. Прошу Вас прекратите засорять обсуждение неконструктивными советами и репликами. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 16:51 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
hvlad, Спасибо, пошел читать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 16:51 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
akrushПрошу Вас прекратите засорять обсуждение неконструктивными советами и репликами. - Обсуждение? Твоих глуполстей? Ты слишком высокого мнения о себе. Тебя пинают в нужном направлении, по одному разу кому не лень, как пинд_вина, и всего делов-та... А тебе лень взять книшку и/или доку и прочитать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 17:03 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
Hello, Akrush! You wrote on 26 декабря 2016 г. 16:56:20: Akrush> Ваши комментарии я наблюдаю в ветке ФБ чуть больше месяц. > Я не знаю как другие, но лично я увидел что-то полезное только в 1-3% ваших сообщений. > Это не считаю того что Ваши сообщения не то что понять, их читать невозможно.ты просто ещё не дорос до этой музыки. (С) Н.Н.Носов Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 17:44 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
m7mкак по мне, то на этапе загрузки никаких (от слова совсем) обработок не должно быть если обработка исключает данные, которые полезут в БД низачем, то обработки должны быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 19:09 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
kdvесли обработка исключает данные, которые полезут в БД низачем , то обработки должны быть. расшифруй мысль ну то что я подчеркнул ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 19:16 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
m7m, а что расшифровывать-то? не надо сохранять в БД данные, которые могут быть обработаны или отфильтрованы вне БД. я такой херней (извините за слово) занимался еще в 2000 году. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 19:23 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
kdvm7m, а что расшифровывать-то? не надо сохранять в БД данные, которые могут быть обработаны или отфильтрованы вне БД. я такой херней (извините за слово) занимался еще в 2000 году. Что-что "которые полезут в БД низачем" Одним из вариантов прочтения был и тот который ты написал зы. я не буду по этому поводу особо возражать ибо 20049530 я написал только из-за некоторой категоричности вот этого "Обработка данных должна быть на этапе загрузки." не оставляющей никаких сомнений, что возможны и другие варианты ззы. Я не исключаю других подходов к решению этого вопроса но однако действительно, на этапе загрузки, не провожу никакой обработки данных все что дали один к одному ложится в базу, и только после загрузки проводится: приведение к нужному виду, контроль, "раскидывание" по таблицам и т.д. и т.п. И не потому что это правильно и так всегда надо делать, а потому что я к такому привык, для меня так проще, ибо не надо по каждому изменению в формате загружаемых данных судорожно менять экзешник отправлять его заказчику....., ну и исторически так сложилось ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 21:12 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
m7m"Обработка данных должна быть на этапе загрузки." не оставляющей никаких сомнений, что возможны и другие варианты Для ТС иных вариантов нет, ибо ХШ чётко сказал, что кодом грузит в одну таблицу. Так что смысла грузить сервер дополнительной обработкой нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2016, 09:05 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
wadman, Хорошо. Если учесть все замечания, то тогда мне разделение на 2 поля нужно делать при Insert'е. Тогда получается что это нужно делать не ХП, а тригером перед вставкой. Я правильно понимаю?? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2016, 09:36 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
akrushТогда получается что это нужно делать не ХП, а тригером перед вставкой. Я правильно понимаю?? Кто и как вставляет данные из dbf? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2016, 09:37 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
wadman, Вставку веду через Делфи используя ФИБы ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2016, 10:31 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
akrushwadman, Хорошо. Если учесть все замечания, то тогда мне разделение на 2 поля нужно делать при Insert'е. Тогда получается что это нужно делать не ХП, а тригером перед вставкой. Я правильно понимаю?? Как многие уже отметили, разделение полей нужно делать на клиенте перед Insert. В FB сложновата сия операция. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2016, 10:31 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
akrushВставку веду через Делфи используя ФИБы Ну вот на Делфи и разделяй ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2016, 10:42 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
akrushwadman, Вставку веду через Делфи используя ФИБы FB-серверу - перпендикулярно где, как и на чём ты там лабаешь "клиента". Книшку почитай, да... 3/4 дури в голове и 2/3 дурацких вопросов само собой отвалится. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2016, 10:42 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
авторВ таблице IN_OPLATA_WORK нужно разделить: 1. Номер дома на цифровое и текстовое значение... Меня дико умиляюит таки, с позволения сказать, "базы данных"... Если возникла необходимость "разделить поле" - это значит, что БД не нормализована от слова "совсем"! Т.е. таблица даже не находится в 1НФ! Может, перед тем как лепить "базу", всё-таки стоило бы подучить "матчасть" - ту же нормализацию, например... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2017, 18:18 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
alex_p_nавторВ таблице IN_OPLATA_WORK нужно разделить: 1. Номер дома на цифровое и текстовое значение... Меня дико умиляюит таки, с позволения сказать, "базы данных"... Если возникла необходимость "разделить поле" - это значит, что БД не нормализована от слова "совсем"! Т.е. таблица даже не находится в 1НФ! Может, перед тем как лепить "базу", всё-таки стоило бы подучить "матчасть" - ту же нормализацию, например... Никто не говорил что данные "живут" в базе данных. Это данные импортируются. Там, в импортируемых данных, полный бред. С этим нужно как-то работать. Думал что можно разделить средствами ФБ. Но уже реализовал средствами Делфи. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2017, 22:05 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
alex_p_nМеня дико умиляюит таки, с позволения сказать, "базы данных"... Если возникла необходимость "разделить поле" - это значит, что БД не нормализована от слова "совсем"! Т.е. таблица даже не находится в 1НФ! Может, перед тем как лепить "базу", всё-таки стоило бы подучить "матчасть" - ту же нормализацию, например... Программистами не рождаются а становятся, набирая опыт. Идеальных программ не бывает. Исходные условия меняются и то что не надо было вчера понадобилось сегодня. Оракулов на всех не хватает что бы предусмотреть все варианты наперед. "Разделить поле" - не самая плохая ситуация, тут хотя бы есть что разделять. Т.е. как минимум эти данные уже привязаны к этой записи. Хуже когда данных вообще нет или они есть в чем-то отдельном и нет критерия как их привязать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2017, 07:37 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
Согласен с категоричным заявлением об обработке клиентом почти полностью. Для тех, кто уже "дорос до классической музыки", всё же нужен намёк на дисклеймер. Загрузку из DBF методом откусывания заголовка и подкладывания в качестве внешней я таки видел и щупал Прочтение "постановки задачи" автором тоже вызывает вопросы. Я сейчас сижу в доме номер "вл1с2". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2017, 10:23 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
WildSery> я таки видел и щупал Оно универсально вообще? С Кладром/ФИАСом работает? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2017, 10:27 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, Нет, не ФИАС и не КЛАДР. Универсальность примерно около нуля. Там куча проблем с блокировкой файлов при объявлении и уничтожении внешних таблиц возникала, и чтобы ещё внешний робот откусанные DBF-ы подкладывал... Сделано для какого-то еженедельного импорта огромнокучи данных, потому что было интересно. И повторять сей опыт на других задачах импорта сильно расхотелось. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2017, 10:34 |
|
Разделение одного поля на два
|
|||
---|---|---|---|
#18+
alex_p_nМеня дико умиляюит таки, с позволения сказать, "базы данных"... Если возникла необходимость "разделить поле" - это значит, что БД не нормализована от слова "совсем"! Т.е. таблица даже не находится в 1НФ! Может, перед тем как лепить "базу", всё-таки стоило бы подучить "матчасть" - ту же нормализацию, например... Любитель делать справочники на всё, включая имена-отчества-фамилии? :) Нормализация определяется сущностью. Раньше сущностью был адрес целиком, потом понадобилось его декомпозировать, обычная ситуация. ТС, проблема в том, что адрес - это не просто "Улица-дом-квартира", а весьма чёртоноголомательная штука. Почитай на хабре статьи про КЛАДР, много полезного узнаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2017, 11:03 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1561769]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 181ms |
0 / 0 |