在C#中的单个Oracle命令中执行多个查询

我正在使用visual studio 2013和oracle数据库。我希望在单个oraclecommand中同时执行多个创建表查询是否可能? 我正在尝试跟随但不工作

OracleCommand cmd = new OracleCommand(); cmd.Connection = con; cmd.CommandText = "create table test(name varchar2(50) not null)"+"create table test2(name varchar2(50) not null)"; //+ "create table test3(name varchar2(50) not null)"+"create table test3(name varchar2(50) not null)"; cmd.CommandType = CommandType.Text; cmd.ExecuteNonQuery(); 

在cmd.ExecuteNonQuery()时收到错误;

为了执行多个命令,将它们放在begin ... end; 块。 对于DDL语句(如create table ),使用execute immediate运行它们。 这段代码对我有用:

 OracleConnection con = new OracleConnection(connectionString); con.Open(); OracleCommand cmd = new OracleCommand(); cmd.Connection = con; cmd.CommandText = "begin " + " execute immediate 'create table test1(name varchar2(50) not null)';" + " execute immediate 'create table test2(name varchar2(50) not null)';" + "end;"; cmd.CommandType = CommandType.Text; cmd.ExecuteNonQuery(); con.Close(); 

更多信息: 使用Oracle.ODP执行SQL脚本

你有没有尝试过

 cmd.CommandText = "create table test(name varchar2(50) not null);"+"create table test2(name varchar2(50) not null);";