无法使用企业库

时间:2016-09-25 06:51:04

标签: c# .net oracle enterprise-library odp.net

我正在创建一个工具,将所有数据和架构从MsSqlServer迁移到Oracle。

使用的.Net库是 EntlibContrib.Data.OdpNet

执行CREATE表时:

OracleDatabase db = new OracleDatabase(connectionString);
string createDDL = "CREATE TABLE APPInvoiceItems (ABC RAW(16));";
db.ExecuteNonQuery(createDDL);

我有一个例外:

ORA-00931: missing identifier
ORA-06512: at "SYS.DBMS_UTILITY", line 156
ORA-06512: at line 1

我搜索了几个主题,但无法找到解决方案

1 个答案:

答案 0 :(得分:1)

您似乎正在调用OracleDatabase.ExecuteNonQuery方法的错误重载。

此方法有五个重载,都是从the superclass, Database继承的。您正在调用的重载采用存储过程名称和存储过程参数的params对象数组。出现错误是因为您的DDL语句不是存储过程的有效名称。

我发现使用以下重载工作:

db.ExecuteNonQuery(CommandType.Text, createDDL);

CommandType需要using System.Data。)

此外,您需要在DDL语句末尾删除分号。否则,您将收到错误ORA-00911: invalid character