#sql #oracle-sqldeveloper #plsqldeveloper
Вопрос:
У меня есть таблица только с одним столбцом по имени x, который является числовым типом данных. Я ищу способ заполнить эту таблицу значениями в последовательных строках, используя код, аналогичный приведенному ниже.
bcreate table sometable (x number);
begin
for i .. X loop
EXECUTE IMMEDIATE 'insert into sometable values('||i||')'; end loop;
end;
Как я могу изменить его, чтобы я мог вставлять любое количество строк, которое я установил, т. Е. 100, 500 или 1000 и т. Д.?
Комментарии:
1. Почему динамический SQL? Здесь нет ничего динамичного.
Ответ №1:
Это можно сделать без цикла:
insert into sometable
with xs (x) as
(
select LEVEL
from DUAL
connect BY LEVEL <= 100
)
select x from xs;
Если вам нужно зациклиться:
declare
end_loop:= 100;
begin
for i .. end_loop loop
EXECUTE IMMEDIATE 'insert into sometable values('||i||')'; end loop;
end;