サーバー側アプリからオラクルにクエリを渡す必要があります。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 .GetSchemaTable()
at System.Data.ProviderBase.SchemaMapping..ctor(DataAdapter アダプター、DataSet データセット、DataTable データテーブル、DataReaderContainer dataReader、Boolean keyInfo、SchemaType schemaType、String sourceTableName、Boolean GettingData、DataColumn parentChapterColumn、Object parentChapterValue)
System.Data.Common.DataAdapter.FillSchemaFromReader (DataSet データセット、DataTable データ テーブル、SchemaType schemaType、文字列 srcTable、IDataReader dataReader)
で System.Data.Common.DataAdapter.FillSchema (DataTable dataTable、SchemaType schemaType、IDataReader dataReader)
で System.Data .Common.DbDataAdapter.FillSchemaInternal(DataSet データセット、DataTable データテーブル、SchemaType schemaType、IDbCommand コマンド、文字列 srcTable、CommandBehavior 動作)
System.Data.Common.DbDataAdapter.FillSchema(DataTable dataTable、SchemaType schemaType、IDbCommand コマンド、CommandBehavior 動作)
システムで.Data.Common.DbDataAdapter.FillSchema(DataTable dataTable, SchemaType schemaType)
記載されたSQLを.NETからOracleに渡す方法について、どんな助けも感謝します