我可以在一个语句中运行多个 SQL 部分吗?

Fra*_*umn 0 sql oracle db2

我有几个用于测试数据的 SQL 语句。有一堆插入语句、一堆选择语句和一堆删除语句。

是否可以将这些插入语句包装在我可以从一行代码运行的东西中?然后,通过一个语句,我可以说,执行插入。或者,执行删除语句。

这是我所拥有的一个例子

insert into [table] values (val1, val2, val3);  
insert into [table] values (val1, val2, val3);  
insert into [table] values (val1, val2, val3);  
insert into [table] values (val1, val2, val3);  
insert into [table] values (val1, val2, val3);  
Run Code Online (Sandbox Code Playgroud)

这是我想象的样子,但因为我不知道这是否可能,所以这可能看起来很傻。

execute sqlChunk(); 这将运行下面的所有内容。

sqlChunk(){   
  insert into [table] values (val1, val2, val3);  
  insert into [table] values (val1, val2, val3);  
  insert into [table] values (val1, val2, val3);  
  insert into [table] values (val1, val2, val3);  
  insert into [table] values (val1, val2, val3);  
}
Run Code Online (Sandbox Code Playgroud)

请注意,我只是将语句放在括号中,因为对我来说,它会是这样的(如果可能的话,再说一遍)。我在 DB2 中运行它。但也想知道你是否可以在 oracle sql 中做到这一点。

小智 5

您可以创建一个存储过程、一个函数或一个作业来封装您的查询,sqlChunk 就像这样。

CREATE PROCEDURE sqlChuck
AS
insert into [table] values (val1, val2, val3);
insert into [table] values (val1, val2, val3);
insert into [table] values (val1, val2, val3);
insert into [table] values (val1, val2, val3);
insert into [table] values (val1, val2, val3);
Run Code Online (Sandbox Code Playgroud)

你会这样称呼它:

EXEC sqlChuck
Run Code Online (Sandbox Code Playgroud)

据我所知,它也可以在 oracle 中完成。