| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Oracle > Процедура UPDATE’а поля COMMIT каждые 100 строк |
| Автор: AlexsandeG 8.2.2023, 00:47 |
| Всем привет! Помогите написать запрос, который будет ставить commit каждые 100 строк при добавлении/обновлении данных в таблицу. То есть нужно сделать цикл, который на каждой 100-й строчке будет выполнять commit и так до тех пор пока все данные не будут добавлены, потому что их очнь много. Я пытался сделать через if, но как-то не получилось, надеюсь кто-нибудь поможет разобраться. Спрашивал у знакомых, кто тоже работает с sql, но у них тоже не очень вышло, поэтому решил попытать счастье тут) Буду очень благодарен, если хотя бы есть какие-то предположения по этому вопросу. И объясните мне, какие процедуры считаются не хранимыми. |
| Автор: Akina 9.2.2023, 10:16 |
| Маловменяемое описание. В каком виде находятся данные для вставки? В общем любая созданная пользователем процедура - хранимая. Формально можно считать не хранимой разве что анонимную процедуру, если, конечно, СУБД их поддерживает. Поддерживает ли их конкретно Оракл, я лично ХЗ. |
| Автор: AlexsandeG 9.2.2023, 21:30 |
| Хорошо, откинем процедуры, с ними понятно. Как правильно тогда составить запрос на update, чтобы при этом срабатывал commit каждые 100 строк? Единственная моя догадка, что это цикл, но как воплотить это в реальность я не понимаю. |
| Автор: AlexsandeG 10.2.2023, 22:20 |
| Возможно я не совсем информативно описал всю картину происходящего, не буду отрицать. Попробую по другому объяснить... Представим, что у меня есть таблица. В эту таблицу необходимо занести 1000 новых строк использую update. Но при всем этом у меня на каждые, предположим, 100 строк должен выполняться commit. Это вся суть задания, которая была мне дана, а из этого задания я уже сделал вывод, что мне необходимо написать запрос-цикл. Суть моей проблемы: я только изучаю sql, соответственно я даже не могу понять с чего мне начать писать запрос. Искал информацию в интернете, но мне это особо не помогло, тяжело разобраться самому. И как вы догадываетесь, то я решил прибегнуть к месту, где возможно вы мне и поможете. Не знаю, какое еще описание задание добавить сюда. |
| Автор: Akina 12.2.2023, 13:20 | ||
Ну бред же бредовый! Даже "только изучая SQL", нельзя не понимать разницу между "необходимо занести 1000 новых строк" (запрос INSERT, увеличивает количество записей в таблице) и "использую update" (запрос UPDATE, не изменяет количество записей в таблице). |
| Автор: LSD 12.2.2023, 18:26 | ||
|
| Автор: AlexsandeG 15.2.2023, 02:43 |
| Akina, Привет, это снова я. Да, я напутал все. В таблице уже имеются записи, соответственно просто нужно сделать update, в котором будет цикл ставить "commit;" на каждые 100 строк. |
| Автор: Akina 15.2.2023, 07:47 |
| AlexsandeG, в любом случае возвращаемся к вопросу "Где конкретика"? Показывайте пример. Полный CREATE TABLE таблицы, в которой надо обновлять данные, INSERT INTO с начальными данными (7-10 записей), сами данные для вставки (3-5 строк) с подробным описанием, в каком они виде (файл, массив, что-то ещё), и требуемый финальный результат после обновления, опять же с подробным описанием, почему именно так. Скорее всего решение будет соответствовать шаблону, который выше опубликовал LSD. |