問題タブ [odp.net-managed]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - .NET DateTime <> Oracle Timestamp のような検索の式ツリー
手がかりが得られるかどうかを知る必要があります。フィルタリングを実行するために、適切な Oracle ステートメントに対して ODP.NET マネージド ドライバー (現在のバージョン) を介して Entity Framework 6 (LINQ to Entities) を介して評価される式ツリーを構築しようとしています。これは、文字列 <> nvarchar2 データ型に対して完全に機能します。含む検索の出力は次のようになります。
SQLステートメントのこの行はOracleクエリに対して有効であり、「08」を含むすべての日付を返すため、DateTime <> Timestamp(6)に対して同じ結果を取得したいと考えています。
私は Expression Trees に慣れていないので、深く掘り下げる前に、(グーグルでいろいろと試した後) まず、これが可能かどうかを知る必要があります。もしそうなら、どうすればこれを最もよく達成できるでしょうか? DateTime と DateTime に定義されたメソッドが含まれていないので? 多分拡張メソッドを提供しますか?そして、データベースに対して直接クエリを実行したくありません。
おそらく、指定されたデータベースのデータ型を「フック解除」するためのヒントがあればいいでしょう... Thx。
c# - 小数点以下の桁数が多いOracle FLOAT(126)をADO.NET DataTableに読み込んでいるときにオーバーフローを防ぐ方法は?
データベースの列に のような数値が含まれている場合、0.11212121212121356500008888888888874343468766
DataRow の生成された Decimal 型の列に収まりません。これは DataReader にも当てはまります。DataReader を使用して、ラッパーでこれを解決しました。
しかし、DataSet、DbDataAdapter で何かを行うにはどうすればよいでしょうか? ROUND または TRUNC を使用してすべての datadapter-Select コマンドを書き換えるのは、間違っているだけでなく、それを変更する場所が既に何百もあるため、論外です。
注 これは ODP.NET にも適用されます。タイプは OracleNumber ではなく OracleDecimal です。私のラッパーは両方のクライアントに使用されます。
odp.net-managed - Oracle ODP.NET エラー
私はVS 2012 Web Project Upを持っています。私たちは Oracle Workshop であるため、ODP.NET をインストールしました。Oracle.ManagedAccess.Data と EF を使用するプロジェクトを継承しました。
VS 2012 でプロジェクトを実行すると、次のエラーが発生します。
解決策は、web.config で次の行を無効にすることでした。
それは大丈夫でした。プロジェクトはコンパイルされましたが、データベースを読み取る必要がある場所でパスワードを取得するなどの単純なコマンドを実行すると、別のエラーが発生しました。
ODP.NETによってエラーが発生し、GACに存在するため、二重のエラー報告が発生することがわかりました。
コメントアウトする必要がある別の行はありますか、または ODP.NET を一時的に無効にする方法はありますか? 他のプロジェクトで使用しているため、そのクライアントをインストールしたくありません。
ありがとう
c# - 無効なSQLを指定したときにOracleにエラーを返すようにするにはどうすればよいですか?
Oracle ODP.NET マネージド ドライバーを使用して、C# からクエリを発行しています。
データを返すのに永遠にかかった、私が書いた多くのクエリがありました。私の行制限句を無視していたように:
また
オラクルが私の10行の制限を無視しているようで、すべてを返し始めました-返すのに永遠に時間がかかっていたからです。最終的に、クエリが大量のデータを返すのに忙しかったわけではないことに気付きました。クエリ SQL が無効でした。
Oracle に無効な SQL を発行しても、エラーで失敗することはありません。
select top 10 * from customers;
select 'Hello, world!';
select sysdate from duel;
select sysdate fro;
Ceilings make pie and markers drive the ocean with their feet
Oracle は、コマンドのタイムアウトが期限切れになるまで待機します。
私は最終的に、Oracle.ManagedDataAccess.Client.OracleCommand
オブジェクトには (奇妙なことに) がないことに気付きましたCommandTimeout
。デフォルトでは永久に実行されます。より妥当な 30 秒に変更すると、次のエラー メッセージが表示され始めます。
ORA-12537: ネットワーク・セッション: ファイルの終わり
Oracle ODP.NET、マネージド ドライバー、接続文字列、またはOracleCommand
SQL ステートメントにエラーがある場合にサーバーにエラーをスローするように指示するオプションはありますか?
ボーナスおしゃべり
Oracle は、ADO.net 用に 2 つのデータベース ドライバを提供します。
- 1 つは、すでにインストールしている必要がある 100MB のネイティブ データベース ドライバの ADO.net マネージド ラッパーです ( Oracle.DataAccess ) 。
- もう 1 つは、純粋なマネージド コードで記述されたスタンドアロンの 3.8 MB ドライバーで、他の依存関係はありません ( Oracle.ManagedDataAccess ) 。
Microsoft は、.NET Framework に含まれる Oracle ドライバーを作成しました。しかし、そのドライバーは非推奨であり、.NET 4.5 では機能しなくなりました。完全な Oracle クライアント ソフトウェア バージョン 8.1.7 以降をインストールする必要があります ( System.Data.OracleClient )
c# - ODP.NETはブール型のパラメータ型をストアド プロシージャに渡すことができますか?
Oracle 11 データベースで ODP.NET 12.1.2400 と EF6 を使用しています。
BOOLEAN 型のパラメータを持つ Oracle ストアド プロシージャがあります。このストアド プロシージャをインポートし、関数のインポートを EF データ モデルに追加しました。ただし、実行時例外が発生します。
PLS-00306: 'PROCEDURE_NAME'のコールの引数の数またはタイプが間違っています
ストアド プロシージャのパラメーター タイプを NUMBER に変更して EF モデルを更新すると、すべてが正しく機能します。
BOOLEAN 型を使用する方法はありますか? または、少なくとも .NET コードで bool パラメーターを使用しますか (EF 関数インポート用のラッパー関数を作成する必要はありません)。
c# - システム Oracle -> Oracle マネージド
参照を交換しましたが、System.Oracle を Oracle.ManagedDataAccess にキャストできないというエラーが表示されます