問題タブ [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.

0 投票する
2 に答える
428 参照

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。

0 投票する
1 に答える
723 参照

c# - 小数点以下の桁数が多いOracle FLOAT(126)をADO.NET DataTableに読み込んでいるときにオーバーフローを防ぐ方法は?

データベースの列に のような数値が含まれている場合、0.11212121212121356500008888888888874343468766DataRow の生成された Decimal 型の列に収まりません。これは DataReader にも当てはまります。DataReader を使用して、ラッパーでこれを解決しました。

しかし、DataSet、DbDataAdapter で何かを行うにはどうすればよいでしょうか? ROUND または TRUNC を使用してすべての datadapter-Select コマンドを書き換えるのは、間違っているだけでなく、それを変更する場所が既に何百もあるため、論外です。

注 これは ODP.NET にも適用されます。タイプは OracleNumber ではなく OracleDecimal です。私のラッパーは両方のクライアントに使用されます。

0 投票する
3 に答える
19590 参照

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 を一時的に無効にする方法はありますか? 他のプロジェクトで使用しているため、そのクライアントをインストールしたくありません。

ありがとう

0 投票する
0 に答える
196 参照

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、マネージド ドライバー、接続文字列、またはOracleCommandSQL ステートメントにエラーがある場合にサーバーにエラーをスローするように指示するオプションはありますか?

ボーナスおしゃべり

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 )

0 投票する
0 に答える
573 参照

c# - ODP.NETはブール型のパラメータ型をストアド プロシージャに渡すことができますか?

Oracle 11 データベースで ODP.NET 12.1.2400 と EF6 を使用しています。

BOOLEAN 型のパラメータを持つ Oracle ストアド プロシージャがあります。このストアド プロシージャをインポートし、関数のインポートを EF データ モデルに追加しました。ただし、実行時例外が発生します。

PLS-00306: 'PROCEDURE_NAME'のコールの引数の数またはタイプが間違っています

ストアド プロシージャのパラメーター タイプを NUMBER に変更して EF モデルを更新すると、すべてが正しく機能します。

BOOLEAN 型を使用する方法はありますか? または、少なくとも .NET コードで bool パラメーターを使用しますか (EF 関数インポート用のラッパー関数を作成する必要はありません)。

0 投票する
0 に答える
94 参照

c# - システム Oracle -> Oracle マネージド

参照を交換しましたが、System.Oracle を Oracle.ManagedDataAccess にキャストできないというエラーが表示されます