問題タブ [oracle-manageddataaccess]

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 に答える
4442 参照

c# - C# - Oracle ストアド プロシージャは行なしで RefCursor を返します

ストアド プロシージャの呼び出しでは 7 行が返されますが、Oracle Managed Data Access を介して呼び出した場合は返されません。

コード :

ストアド プロシージャ

実行時 : 警告なし、エラーなし (すべてのパラメーターが有効)

私の問題:( 予想される7行ではなく)任意の行が返されますが、スキーマを取得します(列名は正しいです)。


環境 :

  • Windows x64
  • .NET フレームワーク: 4.0
  • Oracle クライアントがインストールされている (v11.2) が必要ではない
  • Oracle データ プロバイダー .NET : Oracle.ManagedDataAccess (v121.1.2)
0 投票する
1 に答える
14936 参照

c# - EF 6 プロバイダー構成ファイルで「Oracle.ManagedDataAccess.Client」を追加/アクティブ化する方法は?

これらのビデオ シリーズに従って、VS2013 を使用して ASP.Net MVC Web アプリケーションを作成する方法を学んでいます。次のエラーが発生したとき:

不変名 'Oracle.ManagedDataAccess.Client' を持つ ADO.NET プロバイダーの Entity Framework プロバイダーが見つかりません。アプリケーション構成ファイルの「entityFramework」セクションにプロバイダーが登録されていることを確認してください。詳細については 、http: //go.microsoft.com/fwlink/?LinkId=260882を参照してください。

(ビデオでは、使用されているデータベース プロバイダーはSystem.Data.SqlClientASP.Net アプリケーションでは当然ですが、使用する必要がありますOracle.ManagedDataAccess.Client)

エラー自体は、SOでは新しいものではありません。そして、エラー メッセージと SO の質問の受け入れられた回答で示唆されているように、ODP.Net プロバイダーが EF 6.0 でサポートされているかどうかを確認したところ . それにもかかわらず、私はまだそれを機能させることができません。

私は MVC にかなり慣れていないので、この時点で間違って理解している MVC アプリケーション/設定の概念があれば、あなたの理解を求めます。あなたの修正を受け入れます。

役に立つかもしれないいくつかの追加情報:

  • VS2013 が提供する ASP.Net Web アプリケーション テンプレートを使用して、プロジェクトを開始します。私はそれにMVCテンプレートを使用し、「フォルダーとコア参照を追加する」MVCのみを使用します。「単体テストを追加する」でも「クラウドでホストする」でもありません
  • テンプレートにはapp.configファイルはありませんが、ファイルはありWeb.configます (これは何か違いがありますか? エラー メッセージで、「プロバイダーがアプリケーション構成ファイルの 'entityFramework' セクションに登録されていることを確認してください」と提案されています)。
  • Web.config ファイルで、次のentityFramework部分を見つけました。
  • あることに気付く

    そこにライン。したがって、同様に追加しようとします:

    typeしかし、属性に何を書けばいいのかわからずEntityFramework.???、数時間立ち往生しています。入れないと、次の警告が表示されます。

    必要な属性「タイプ」がありません

    これについての助けをいただければ幸いです。

この問題を解決するためにプロバイダーを追加する以外に、他に何かする必要があることがわかっている場合も、私はオープンです。ファイル内の接続文字列は次のweb.configとおりです。

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

c# - ODP.Net Oracle.ManagedDataAccessを使用したEF 6、クラスプロパティに大文字以外を使用する方法は?

Oracle.ManagedDataAccessASP.Net MVC Web アプリケーションのODP.Net で EF 6 を使用しています。

私は(ファイル内で)以下Modelを呼び出しています:EmployeeModel\Employee.cs

としてもEmployeeContext.cs

次に、私のでは、次のようEmployeeController.csに を使用します。EmployeeEmployeeContext

次の内部例外エラーが発生した場合:

Oracle.ManagedDataAccess.Client.OracleException: ORA-00904: "Extent1"."Id": 無効な識別子

例外エラーは次の場所で発生します。

デバッグ出力コンソールを使用してさらにデバッグを行っていると、EF が次の SQL クエリを生成してデータを取得していることに気付きました。

" "さらに調査を行ったところ、SQL クエリの列名 ( 、 など."Id")に引用符が含まれているため".EmployeeType"".HourlyPay"クエリが一致する列名を見つけられないことがわかりました。Oracle データ テーブルの列名はすべて大文字で表されます (つまり."ID"".EMPLOYEETYPE"".HOURLYPAY"など)。

さて、クラス定義を次のように変更すると:

それは完全にうまく機能します。しかし、私はそれを望んでいません

典型的な C# コーダーとして、クラスのフィールド/プロパティがすべて大文字であることは非常に珍しいことでした。

私の質問は、大文字と小文字の組み合わせを使用してクラス プロパティを保持する方法はありますか?

繰り返しますが、EF6.0.0.0と ODP.Net のOracle.ManagedDataAccessバージョン4.121.2.0と、それらが重要な場合はOracle.ManagedDataAccess.EntityFrameworkバージョンを使用します。6.121.2.0

0 投票する
4 に答える
16382 参照

c# - ODP.net接続を適切に閉じる方法:dispose()またはclose()?

これは私のpowershellコードです:

それで、ODP.NET接続を開いてから閉じていますが、Oracle Databaseへの接続を適切に閉じるには十分ですか$OracleConnexion.open()? $OracleConnexion.close()または、使用する必要があります$OracleConnexion.Dispose()か?

タスク スケジューラを介して 5 分ごとに PowerShell を実行しています...メモリの飽和を避けるために Dispose() を使用する必要がありますか?

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

c# - BOOLEAN を Oracle 12c プロシージャに渡す方法は?

BOOLEAN12cでOracleプロシージャに渡す方法は?

12cより前はできなかったと聞きましたが、12cでもできません。

私は以下を試しましたが、エラーが発生しました。

エラー:

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

entity-framework - Oracle Managed Data Access用のWeb構成の構成

大規模なグーグルの後、この問題の解決策が見つからないようです。一言で言えば、MVC/Web API アプリケーションで EF 6 で Oracle Managed Data Access クライアントを使用しています。

ローカルで実行すると、Web API 2 コントローラーでさまざまな操作を正常に呼び出すことができます。問題はありません。

ステージング サーバーに公開すると、すぐに次のエラーが発生します。

"メッセージ: 基礎となるプロバイダーが Open で失敗しました。

明らかに、ローカルで実行する場合、ユーザー名/パスワードは問題ないので、web.config の場所にそれらを配置していないと感じています。

これが私の Web 構成です。接続文字列の Datasource 値に TNS 文字列全体を使用していることがわかります。そうしないと、ステージング サイトに次のエラーが表示されます - TNS: 指定された接続識別子を解決できませんでした

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

.net-4.5 - .NET 4.5.1 で Oracle Managed DataAccess を使用すると、印刷できない文字が Oracle から返される

VB.NET Web アプリケーションを .NET Framework 2.0 から 4.5.1 に移行したばかりで、この移行の一環として、OLE DB ドライバーも Oracle Managed Data Access Driver に更新しました。

既存のコードのクエリのいくつかは、低い値 (非印刷可能文字、具体的には chr(0)) の空の文字列をフェッチしていたことが判明しましたが、新しい移行されたコードはたまたま非印刷可能文字をそのまま返します ("�" として返されます)。 . これがフレームワークまたはOracle Managed Data Access Driverの移行によるものかどうかは誰にもわかりません。これらの「印刷できない文字」を返さないようにするために実行できるグローバル設定/構成はありますか。コードを調べて、複数の場所で文字列をマスキングしないようにするには?

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

oracle - アップデートの Oracle.ManagedDataAccess 4.121.1.0: ORA-01461: CAN BIND A LONG VALUE ONLY FOR INSERT INTO A LONG COLUMN

テーブルの更新を行うと、次のエラーが発生します。

このエラーが発生する列は a として定義されておりCLOB、約 4 万文字の文字列を挿入しようとしています。しましたが、次のエラーが表示されますParameterDirectionInputOutputInput

どうすればこの問題を解決できますか? System.Data.OracleClientまた、うまく動作するため、dllの問題だと思います。Oracle.ManagedDataAccessしかし、もう一方は廃止されているため、使用したいと思います。

ありがとう