【问题标题】:Use loop to populate table in PL/SQL在 PL/SQL 中使用循环填充表
【发布时间】:2021-11-16 17:44:17
【问题描述】:

我有一个表,其中只有一列名称为 x,它是一种数字数据类型。我正在寻找一种方法,通过使用与下面类似的代码,用连续行中的值填充此表。

bcreate table sometable (x number);

begin 
for i .. X loop 
 EXECUTE IMMEDIATE 'insert into sometable values('||i||')'; end loop; 
end; 

如何修改它以便我可以插入我设置的任意数量的行,即 100、500 或 1000 等?

【问题讨论】:

  • 为什么选择动态 SQL?这里没有动态。

标签: sql oracle-sqldeveloper plsqldeveloper


【解决方案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; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    • 2017-10-30
    相关资源
    最近更新 更多