|
0 / 0 / 0
Регистрация: 04.08.2016
Сообщений: 107
|
|
Plsql цикл изменения запроса компоновка данных в созданную таблицу10.11.2016, 11:44. Показов 1756. Ответов 8
Метки нет (Все метки)
Всем здравствуйте. Ребят я как это не странно только недавно узнал о существовании plsql мне интересно на что этот язык способен...
У меня есть задача которую решить самому не получается, подскажите кто сможет. Допустим есть запрос на подсчет количества строк которые он выдаст, но запрос нужно посчитать с изменением одно критерия допустим rn=1-100 по сути должно получится сто запросов... И после их собирать в одну таблицу. Это долго и желания ни какого нет как модно изменить это значение rn с помощью plsql... Пример того как я делал это раньше select distinct count(*) from tablica where rn=1 Union all select distinct count(*) from tablica where rn=2 ... Итд Но в один прекрасный момент я столкнулся с тем что сервер не вывозит запрос из за его сложности Вопрос как с помощью plsql создать таблицу считать запрос и внасить данные в неё после чего изменять значение rn на 2 и повторить операцию пока у нас не получиться таблица из 100 строк... Всем кто откликнится огромное спасибо.
0
|
|
| 10.11.2016, 11:44 | |
|
Ответы с готовыми решениями:
8
Как добавить программно таблицу в созданную локальную базу данных? Ошибка изменения данных таблицы при выполнении запроса |
|
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
|
||
| 10.11.2016, 12:04 | ||
Теперь по поводу PL/SQL. Это процедурное расширение Oracle SQL, т.е. включает в себя те возможности, которые не обеспечивает SQL (работа с переменными, условия, циклы и проч). Но в любом случае, чтобы получить какие-то сведения из таблиц БД, в PL/SQL вызываются SQL-запросы. Если ты имел ввиду, что PL/SQL может доступаться к данным, лежащим в таблицах БД, в обход SQL, то нет. Да, можно было твои запросы вызывать поодиночке (в цикле) и результат засовывать в переменные или коллекцию, но шибко сомнительно, что это будет быстрее одного запроса.
0
|
||
|
0 / 0 / 0
Регистрация: 04.08.2016
Сообщений: 107
|
|
| 10.11.2016, 12:13 [ТС] | |
|
По поводу запроса.... Это я привёл просто пример... Скидываю запрос с которым возникла проблемма но он не полный... Это только фрагмент... R_f10 это район и он меняется в каждом запросе... Районов 64.. У сервера не хвотило мощи это посчитать поэтому хотелось найти вариант просто считать один запрос добавлять результат в таблицу менять район и сново считать... Пока 64 района не просчитаются....
0
|
|
|
0 / 0 / 0
Регистрация: 04.08.2016
Сообщений: 107
|
|
| 10.11.2016, 12:15 [ТС] | |
|
Я с plsql ни когда не работал поэтому и прошу скинуть хоть какой то пример что бы в последствии я с ним как то разобрался
0
|
|
|
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
|
||
| 10.11.2016, 12:22 | ||
Еще раз: да, из блока PL/SQL можно вызывать каждую часть UNION отдельно и результат записывать в переменные. Но маловероятно, что это ускорит выполнение, скорее наоборот. Впрочем, никто не мешает попробовать.
0
|
||
|
0 / 0 / 0
Регистрация: 04.08.2016
Сообщений: 107
|
|
| 10.11.2016, 12:39 [ТС] | |
|
Вот это поле r-f10 оно индексированное поле
Добавлено через 11 минут А на счёт плана я вас не очень понял... Я просто выводу через селект отдельные запросы что бы они были в строку union и использую что бы добавить строку. И посчитать тот же запрос только поменяв район
0
|
|
|
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
|
||
| 10.11.2016, 12:59 | ||
|
Есть 2 способа доступа: доступ по индексу и full scan, т.е. полный просмотр таблицы. Если есть индекс по нужному полю, то оптимизатор может выбрать один из двух способов. Если индекса нет, остается только full scan. Поэтому, если таблицы большие и время выполнения запроса недопустимо долго, то надо добавить индексы по столбцам, которые встречаются в условиях WHERE. В данном случае я бы добавил индексы по всем полям, которые присутствуют в условиях связи. К слову сказать, именно план выполнения показывает, какой тип доступа к таблицам используется. Посмотреть такой план можно в SQL*Plus с пом. команды EXPLAIN PLAN. Кроме того, в многих ГУИ есть пункты меню. для просмотра такого плана, ибо без этого невозможно оптимизировать запросы. Кстати, если для связи таблиц требуется столько условий связи, я бы предположил неоптимальность структуры БД (хотя это и необязательно).
0
|
||
|
0 / 0 / 0
Регистрация: 04.08.2016
Сообщений: 107
|
|
| 10.11.2016, 13:23 [ТС] | |
|
Проблема у меня в том что буфер переполнялся и программа записала и не отвечала в итоге пришлось сервак перезагружать иначе я бы и не расстраивался считал бы как было... Но он виснет поэтому нужно буфер освобождать
0
|
|
|
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
|
|||
| 10.11.2016, 15:20 | |||
0
|
|||
| 10.11.2016, 15:20 | |
|
Помогаю со студенческими работами здесь
9
Вставка в таблицу данных из запроса Добавление данных в таблицу из запроса Вставка данных из запроса в таблицу
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
в-строка - входное арифметическое выражение в инфиксной(обычной). . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|