Tag: odp.net

OracleConnection抛出空exception

我正在尝试从我的新PC连接到我的Oracle数据库。 我刚刚安装了Visual Studio和ODAC。 但是,当我尝试做一个简单的连接我得到一个空消息,空源,空数的exception,只是错误代码是-2147467259 。 OracleConnection Prueba; Prueba = new OracleConnection(“Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX.XXX.XXX.XXX)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXXX)));User Id=XXX;Password=XXX;Pooling=true;Max Pool Size=10;Min Pool Size=1”); Prueba.Open(); 例外细节 这是Exception.ToString()代码: “在Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx * pOpoSqlValCtx,Object src,String procedure)中的Oracle.DataAccess.Client.OracleException 在Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,Object src) 在Oracle.DataAccess.Client.OracleConnection.Open() at OracleConnectionS.Program.Main(String [] args)在C:\ Users \ Simetri \ Documents \ Visual Studio 2010 \ Projects \ OracleConnection \ OracleConnection \ Program.cs:第19行“ […]

打开oracle连接时,连接对象为null

我正在尝试连接到我的控制器中的oracle数据库: using Oracle.DataAccess.Client; using Oracle.DataAccess.Types; // Other code OracleConnection con; con = new OracleConnection(); con.ConnectionString = “DATA SOURCE=;PERSIST SECURITY INFO=True;USER ID=******;PASSWORD=*******”; con.Open(); 连接测试成功,我可以在Visual Studio的服务器资源管理器中浏览表,函数等,但是当我尝试执行上面的代码时,我一直得到[NullReferenceException: Object reference not set to an instance of an object.] on con.Open(); 线。 这是我第一次使用ODP for .NET,我通常也是C#的新手。 什么可能是问题的任何想法? 堆栈跟踪: Source Error: Line 27: Line 28: Line 29: con.Open(); Line 30: Source File: […]

ODP.NET托管 – 无法找到请求的.Net Framework数据提供程序

使用Visual Studio 2013,我使用Nuget将最新版本的ODP.NET Managed添加到项目中: Install-Package odp.net.managed http://www.nuget.org/packages/odp.net.managed/121.1.2 现在,当我尝试运行以下代码时: Database db = DatabaseFactory.CreateDatabase(); 它抛出以下exception: An exception of type ‘System.ArgumentException’ occurred in System.Data.dll but was not handled in user code Additional information: Unable to find the requested .Net Framework Data Provider. It may not be installed. 在阅读其他用户的类似问题后,我将托管驱动程序部分添加到C:\ Windows \ Microsoft.Net \ Framework64 \ v4.0.30319 \ Config \ […]

Oracle.ManagedDataAccess.dll中的OracleBulkCopy类?

我正在使用OracleBulkCopy类来引用Oracle.DataAccess.dll。 我想使用Oracle.ManagedDataAccess.dll来轻松部署。 但后来我遇到了构建错误“找不到OracleBulkCopy” 有谁知道为什么OracleBulkCopy不包含在Oracle.ManagedDataAccess.dll中?

ODP.Net托管驱动程序 – ORA-12704:生成的代码中的字符集不匹配

我目前正在使用Oracle托管驱动程序(v12.1.2400)作为我的entity framework驱动程序,并且我目前在执行期间看到ORA-12704: character set mismatch错误。 我使用的LINQ-> SQL代码如下: from c in CUSTOMER.AsNoTracking() where c.ACCOUNT.Contains(“DE”) && c.DELETED == “N” orderby (c.FORENAME + c.SURNAME) select new { c.ACCOUNT, c.FORENAME, c.SURNAME}) 这是创建以下SQL: SELECT “Project1”.”C2″ AS “C1”, “Project1″.”ACCOUNT” AS “ACCOUNT”, “Project1″.”FORENAME” AS “FORENAME”, “Project1″.”SURNAME” AS “SURNAME” FROM ( SELECT( (CASE WHEN (“Extent1″.”FORENAME” IS NULL) THEN N” ELSE “Extent1″.”FORENAME” END) ||(CASE […]

Oracle.DataAccess.Client依赖项

首先,我想使用Oracle.DataAccess.dll来使用OracleBulkCopy 。 我想知道我需要能够从数据库中读取的所有dll,然后在Oracle中执行批量复制。 目前,我们只使用一个dll来执行数据库的所有读取,我们使用的是Oracle.ManagedDataAccess.Client 。 但我不能用它来执行bulkCopy。 我不想为用户安装ODP.NET,我想直接在程序中包含dll。 所以我想知道能够在32位和64位中使用Oracle.DataAccess.dll所需的最低dll。 我知道有一些关于这个的老post,但它很安静,列出的dll已经过时了。 我无法找到其中一些事件。 我为ODAC12安装了ODP.net,我在这篇文章中检索了所有列出的dll。 我也尝试过这篇文章 。 列出的dll指出版本11。 我做了一个虚拟项目,打开一个连接,读取一个表并在另一个表中进行批量处理。 我从项目根目录中的post中复制了列出的dll,并在项目中包含了Oracle.DataAccess.dll 。 当我以64位运行我的程序时,我收到以下错误: 无法加载文件或程序集’Oracle.DataAccess,Version = 4.121.2.0,Culture = neutral,PublicKeyToken = 89b483f429c47342′ 当我以32位运行它时,我收到此错误: 无法加载DLL’OraOps12.dll’:找不到指定的模块。 (HRESULTexception:0x8007007E)“ 我包括的dll是: OCI.DLL OCIW32.DLL Oracle.DataAccess.dll orannzsbb12.dll oraocci12.dll oraociei12.dll OraOps12.dll

Oracle.DataAccess.Client.OracleException ORA-03135:连接丢失联系

我有一个.Net服务,可以在每次请求时连接到Oracle数据库。 它在开始时工作正常,但在我开始获得一些请求之后: Oracle.DataAccess.Client.OracleException ORA-03135: connection lost contact at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure) at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src) at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior) at Oracle.DataAccess.Client.OracleCommand.ExecuteReader() at MyApp.Services.OracleConnectionWithRetry.ExecuteReader(OracleCommand command) … 知道可能是什么问题吗? 我处理所有连接,结果和参数。 这项服务的负担非常低。

odp.net可以将参数传递给布尔pl / sql参数吗?

是否可以正确地将OracleParameter传递给pl / sql存储过程中的布尔参数?

Oracle编号为C#decimal

我知道在互联网上有几个关于这个问题的post和post,我已经阅读过它们(不是每篇文章,我都要承认)但是没有一个能完全满足我。 我的情况: 我正在使用ODP.net(dll版本2.111.6.0)访问Oracle DB(版本10 + 11)和DataReader来检索数据(.NET 3.5,C#)。 使用此代码会导致’ System.OverflowException(算术运算导致溢出) 。 decimal.TryParse(oraReader.GetOracleDecimal(0).Value.ToString(), NumberStyles.Any, null, out parsedOraDecimal) 这一个导致值为’ 3,0000000000000000000000000000000000000000000000000000000000000E-126 ‘ decimal.TryParse(oraReader.GetOracleValue(0).ToString(), NumberStyles.Any, null, out parsedOraDecimal) 现在我必须找到一些方法来正确检索和评估这个值 – 数据库也可以从我无法控制的其他应用程序中使用,因此无法进行更改。 将我的C#代码中的类型从’decimal’转换为’double’也不是一个真正的选择。 有任何想法吗?

ODP.NET连接池参数

我正在尝试使用ODP.NET版本2.111.6.20为我的.NET应用程序配置连接池。 该数据库是Oracle 11.1。 我在我的.NET 2.0应用程序中使用以下连接字符串: Data Source=prod; User Id=FAKE_USER; Password=FAKE_PASS; Pooling=true; Min Pool Size=2; Max Pool Size=5; Connection Timeout=30;” 根据文档,连接池应初始化为2个连接,并根据需要增加最多5个连接。 它永远不会超过5个连接。 我所看到的是,连接每次增长2个,并且增长到10个连接。 我通过查询v $ session表来监视Oracle数据库中的连接,因此我知道连接来自源自我的应用程序的特定应用程序。 如果有人可以帮我确定在这个应用程序内的连接池中可能发生的事情,可能允许超过最大连接数,我会很感激。 样本C#代码 以下是调用数据库的代码示例: const string connectionString = “Data Source=prod; User Id=FAKE_USER; Password=FAKE_PASS; Pooling=true; Min Pool Size=5; Max Pool Size=5; Connection Timeout=30;”; using (OracleConnection connection = new OracleConnection(connectionString)) { connection.Open(); using […]