0

我需要将一个查询从我的服务器端应用程序传递给 oracle。使用 C# 和处理连接的 DbAdapter 类和返回 DataTable 对象的方法。

System.Data.oracleclient.DbSqlParser.Parse2(String SelectStatment) 在尝试解析以下在 Oracle 中有效的语句时抛出异常:

    DbAdapter dbadapter = new DbAdapter();
    DataTable ngwbcdpflowTAB = new DataTable();
    string selectsql = @"Select sub.proddate, sub.interfacename,sub.cdpid, sub.mmbtu from (select proddate,interfacename,cdpid,mmbtu,btufactor, max(proddate) over (partition by cdpid) max_date from v_ngwbcdpflowinterface where proddate<=" + DbHelper.SqlDate(proddate) + @") sub where sub.proddate = sub.max_date";
    dbadapter.FillSchema(ngwbcdpflowTAB, selectsql);

上面嵌入的 DBHelper.SQLDate(DateTime foo) 方法将 DateTime c# 类型转换为 Oralce To_Date('mm-dd-yyyy', 'mm dd yyyy) 表达式。

抛出的异常是:

System.InvalidOperationException:语法错误:需要标识符或引用标识符。
 在 System.Data.OracleClient.DbSqlParser.Parse2(String statementText)
 在 System.Data.OracleClient.DbSqlParser.Parse(String statementText) 在 System.Data.OracleClient.OracleDataReader.FillSchemaTable(DataTable schemaTable)
 在 System.Data.OracleClient.OracleDataReader System.Data.ProviderBase.SchemaMapping..ctor 处的.GetSchemaTable()
 (DataAdapter 适配器,DataSet 数据集,DataTable 数据表,DataReaderContainer dataReader,布尔 keyInfo,SchemaType schemaType,字符串 sourceTableName,Boolean gettingData,DataColumn parentChapterColumn,Object parentChapterValue)
 在 System.Data.Common.DataAdapter.FillSchemaFromReader(DataSet dataset, DataTable datatable, SchemaType schemaType, String srcTable, IDataReader dataReader)
 在 System.Data.Common.DataAdapter.FillSchema(DataTable dataTable, SchemaType schemaType, IDataReader dataReader)
 在 System.Data .Common.DbDataAdapter.FillSchemaInternal(DataSet dataset, DataTable datatable, SchemaType schemaType, IDbCommand command, String srcTable, CommandBehavior behavior)
 at System.Data.Common.DbDataAdapter.FillSchema(DataTable dataTable, SchemaType schemaType, IDbCommand command, CommandBehavior behavior)
 at System .Data.Common.DbDataAdapter.FillSchema(DataTable dataTable, SchemaType schemaType)

任何有关如何从 .NET 将所述 sql 传递到 oracle 的帮助表示赞赏

4

0 回答 0