23 / 12 / 2
Регистрация: 23.08.2010
Сообщений: 100
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Заполнение таблицы по диапазону30.03.2016, 09:44. Показов 2686. Ответов 7
Метки нет (Все метки)
Добрый день!
Есть таблица:
В таблице такие поля могут быть заполнены несколько раз:
В итоге, необходимо заполнить в этой таблице поле val_range:
И это все сделать одним селектом, у меня есть два скрипта-примера:
Заранее спасибо за помощь!
0
|
30.03.2016, 09:44 | |
Ответы с готовыми решениями:
7
Фильтрация таблицы по диапазону дат Фильтрация таблицы по диапазону дат Автоматическое заполнение таблицы данными из другой таблицы при соблюдении определенного условия Заполнение детальной таблицы, не имея мастер таблицы |
763 / 664 / 194
Регистрация: 24.11.2015
Сообщений: 2,158
|
|
30.03.2016, 12:29 | 2 |
Вам надо заполнить по уже имеющимся записям, или создать набор записей?
Например, у Вас в таблице есть всего четыре строки 1 10000 null 1 10000 null 1 10000 null 1 10000 null Вам надо сделать из них тоже четыре строки 1 10000 1 1 10000 2 1 10000 3 1 10000 4 или Вам надо создать дополнительно 10000-4 строк и все заполнить?
0
|
23 / 12 / 2
Регистрация: 23.08.2010
Сообщений: 100
|
||||||
30.03.2016, 14:48 [ТС] | 3 | |||||
надо создать дополнительно 10001 строку и заполнить столбец val_range одним селектом
Вот более наглядный пример, может он будет более конкретным, что мне надо
0
|
763 / 664 / 194
Регистрация: 24.11.2015
Сообщений: 2,158
|
|
30.03.2016, 15:06 | 4 |
Мне Ваш последний скрипт нравится гораздо больше селектов. Я как раз хотел предложить написать что-то подобное. Других вариантов я не придумал, разве что использовать pipeline-функции. Если не знаете, почитайте. Вы даете функции два значения, она Вам выкидывает набор строк.
Могу поделиться некоторым печальным опытом. Не знаю как на Вашей базе, а на моей, если CONNECT BY level <n и n>2000000 (приблизительно), то селект начинает работать, а потом валится с невиданной ранее ошибкой "Недостаточно ресурсов". Pipeline-функции тоже съедают много ресурсов, поэтому и с ними возможно подобное (правда лично не наблюдал).
1
|
23 / 12 / 2
Регистрация: 23.08.2010
Сообщений: 100
|
||||||
30.03.2016, 15:17 [ТС] | 5 | |||||
Да мне этот цикл тоже нравится больше, но к сожалению его нельзя использовать.
Вот у меня так же с CONNECT BY level: работает-работет, а потом выдает ошибку (типа конец файла, в итоге то, что сессия оборвана) и все, дальше не идет. спасибо за pipeline, попробую прикрутить к своей задаче. Добавлено через 6 минут кстати, скрипт
0
|
763 / 664 / 194
Регистрация: 24.11.2015
Сообщений: 2,158
|
|
30.03.2016, 15:28 | 6 |
0
|
23 / 12 / 2
Регистрация: 23.08.2010
Сообщений: 100
|
|
30.03.2016, 16:13 [ТС] | 7 |
Я думал, что нельзя, а оказалось можно.
Все дело в том, что этот алгоритм должен работать в Informatica Power Center. Там есть трансформация SQL, куда код вставляется и выполнятется этот скрипт, для апдейтов и инсертов актуально, но как только я туда цикл вставил - он мне сказал, что ошибка, а оказалось, что надо было этот скрипт засунуть в другую трансформацию, экранировать символы ; и тогда будет работать и оно работает! )))
0
|
763 / 664 / 194
Регистрация: 24.11.2015
Сообщений: 2,158
|
|
30.03.2016, 17:30 | 8 |
Ну и замечательно. Бывают такие редкие случаи когда (квази)процедура работает быстрее чистого селекта. Кстати, не факт, что в Вашей системе сработал бы pipline. Так что все решилось ко всеобщему удовольствию.
0
|
30.03.2016, 17:30 | |
30.03.2016, 17:30 | |
Помогаю со студенческими работами здесь
8
Автоматическое заполнение таблицы данными из другой таблицы Заполнение таблицы данными из другой таблицы Заполнение таблицы по данным из другой таблицы БД "Тестирование пользователей". Заполнение таблицы данными из формы и другой таблицы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |