无法通过ODP.NET执行SQL查询 - 无效的字符错误

the*_*oop 3 oracle odp.net ora-00911

我正在尝试通过ODP.NET执行SQL查询来创建表,但我总是得到一个ORA-00911'无效字符'错误.即使SQL查询本身没有换行符,异常中的Errors对象也始终具有文本"ORA-00911:invalid character \n".

我正在执行SQL的代码是这样的:

using (OracleConnection conn = new OracleConnection(<connection string>) {
using (OracleCommand command = conn.CreateCommand()) {
    conn.Open();
    command.CommandText = queryString;

    command.ExecuteNonQuery();         // exception always gets thrown here
}
Run Code Online (Sandbox Code Playgroud)

queryString包含一个CREATE TABLE语句,在通过SQL Developer执行时可以正常工作

编辑:我正在执行的SQL是这样的:

CREATE TABLE "TESTSYNC"."NEWTABLE" (
  "COL1" NUMBER(*,0) NULL,
  "COL2" NUMBER(*,0) NULL
);
Run Code Online (Sandbox Code Playgroud)

删除了换行符

the*_*oop 8

其他人遇到过这个问题 - ODP.NET在文本命令中不支持多个SQL语句.解决方案是将它包装在PL/SQL块中,并在每个语句周围使用EXECUTE IMMEDIATE.这种缺乏支持; 对我来说似乎非常愚蠢,并没有改善我对oracle开发团队的看法.

此外,这似乎是oracle本身的一个问题,因为我在MS和ODBC oracle客户端遇到了同样的问题.