INSERT ALL没有select语句?

时间:2014-01-20 20:20:50

标签: sql oracle

希望有人可以帮助我。我想从我构建的语句中将许多记录添加到表中。 例如:

ProjectSQL = "INSERT ALL "
For each Proj in split(Request.Form("ShowProjects"))
  ProjectSQL = ProjectSQL & "  INTO proj_tbl (proj_id) VALUES ('" & Proj & "') "
Next
db.Execute ProjectSQL

The SQL is:
INSERT ALL 
  INTO proj_tbl (proj_id) VALUES ('45) 
  INTO proj_tbl (proj_id) VALUES ('56) 
  INTO proj_tbl (proj_id) VALUES ('92)  

Oracle SQL最后需要一个Select语句。

我不想在每个循环中敲击数据库,因为可能会添加许多记录(并且dba会切断我的球)。

有人可以告诉我该怎么做吗?

感谢。

2 个答案:

答案 0 :(得分:4)

假设proj_idnumber,您可以构建一个这样的SQL语句,从dual表中执行无意义的查询

INSERT ALL 
  INTO proj_tbl (proj_id) VALUES (45) 
  INTO proj_tbl (proj_id) VALUES (56) 
  INTO proj_tbl (proj_id) VALUES (92) 
  SELECT 1 FROM dual

答案 1 :(得分:1)

为什么不将声明构建为:

INSERT INTO proj_tbl(proj_id)
    select 45 from dual union all
    select 56 from dual union all
    select 92;