![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
AlexsandeG |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 5.2.2023 Репутация: нет Всего: нет |
Всем привет!
Помогите написать запрос, который будет ставить commit каждые 100 строк при добавлении/обновлении данных в таблицу. То есть нужно сделать цикл, который на каждой 100-й строчке будет выполнять commit и так до тех пор пока все данные не будут добавлены, потому что их очнь много. Я пытался сделать через if, но как-то не получилось, надеюсь кто-нибудь поможет разобраться. Спрашивал у знакомых, кто тоже работает с sql, но у них тоже не очень вышло, поэтому решил попытать счастье тут) Буду очень благодарен, если хотя бы есть какие-то предположения по этому вопросу. И объясните мне, какие процедуры считаются не хранимыми. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20580 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Маловменяемое описание.
В каком виде находятся данные для вставки? В общем любая созданная пользователем процедура - хранимая. Формально можно считать не хранимой разве что анонимную процедуру, если, конечно, СУБД их поддерживает. Поддерживает ли их конкретно Оракл, я лично ХЗ. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
AlexsandeG |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 5.2.2023 Репутация: нет Всего: нет |
Хорошо, откинем процедуры, с ними понятно.
Как правильно тогда составить запрос на update, чтобы при этом срабатывал commit каждые 100 строк? Единственная моя догадка, что это цикл, но как воплотить это в реальность я не понимаю. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20580 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Столь общий вопрос предполагает только общий ответ. В формате одного запроса это нереализуемо. Только в виде итеративной процедуры. Более конкретный ответ можно получить только после предоставления деталей. В частности, ответа на ранее заданный вопрос. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
AlexsandeG |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 5.2.2023 Репутация: нет Всего: нет |
Возможно я не совсем информативно описал всю картину происходящего, не буду отрицать. Попробую по другому объяснить...
Представим, что у меня есть таблица. В эту таблицу необходимо занести 1000 новых строк использую update. Но при всем этом у меня на каждые, предположим, 100 строк должен выполняться commit. Это вся суть задания, которая была мне дана, а из этого задания я уже сделал вывод, что мне необходимо написать запрос-цикл. Суть моей проблемы: я только изучаю sql, соответственно я даже не могу понять с чего мне начать писать запрос. Искал информацию в интернете, но мне это особо не помогло, тяжело разобраться самому. И как вы догадываетесь, то я решил прибегнуть к месту, где возможно вы мне и поможете. Не знаю, какое еще описание задание добавить сюда. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20580 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Ну бред же бредовый! Даже "только изучая SQL", нельзя не понимать разницу между "необходимо занести 1000 новых строк" (запрос INSERT, увеличивает количество записей в таблице) и "использую update" (запрос UPDATE, не изменяет количество записей в таблице). -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15717 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 537 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
AlexsandeG |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 5.2.2023 Репутация: нет Всего: нет |
Akina, Привет, это снова я. Да, я напутал все. В таблице уже имеются записи, соответственно просто нужно сделать update, в котором будет цикл ставить "commit;" на каждые 100 строк.
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20580 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
AlexsandeG, в любом случае возвращаемся к вопросу "Где конкретика"?
Показывайте пример. Полный CREATE TABLE таблицы, в которой надо обновлять данные, INSERT INTO с начальными данными (7-10 записей), сами данные для вставки (3-5 строк) с подробным описанием, в каком они виде (файл, массив, что-то ещё), и требуемый финальный результат после обновления, опять же с подробным описанием, почему именно так. Скорее всего решение будет соответствовать шаблону, который выше опубликовал LSD. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Oracle" | |
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Oracle | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |