Oracle.DataAccess.Client - DbProviderFactories.GetFactory
Hello
I was inspired by this article http://www.oracle.com/technology/oramag/oracle/06-winsupp/win06odp.html
And been trying to switch my project over from "System.Data.OracleClient" (seems like it's not friendly with TransactionScope) to ODP.NET "Oracle.DataAccess.Client". I failed from get go:
Code:
DbProviderFactory oDbFactory = DbProviderFactories.GetFactory("Oracle.DataAccess.Client");
Keep getting System.Configuration.ConfigurationErrorsException saying:
+"Failed to find or load the registered .Net Framework Data Provider."+
In my futile attempt to resolve this:
STEP 1: In machine.config
* Under \\configuration\configSections\, *add:
<section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
* Under ..\system.data\DbProviderFactories\, *add:
<add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description=".Net Framework Data Provider for Oracle" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=10.2.0.100, Culture=neutral, PublicKeyToken=89b483f429c47342" />
STEP 2: I checked my assembly cache it's there:
Code:
D:\Program Files\Microsoft Visual Studio 9.0\VC>gacutil /l | findstr Oracle
System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77
a5c561934e089, processorArchitecture=x86
CoreLab.Oracle, Version=3.50.12.0, Culture=neutral, PublicKeyToken=09af7300eec
+23701, processorArchitecture=MSIL+
Oracle.DataAccess, Version=10.2.0.100, Culture=neutral, PublicKeyToken=89b483f
+429c47342+
Oracle.DataAccess.resources, Version=10.2.0.100, Culture=de, PublicKeyToken=89
b483f429c47342
Oracle.DataAccess.resources, Version=10.2.0.100, Culture=es, PublicKeyToken=89
b483f429c47342
Oracle.DataAccess.resources, Version=10.2.0.100, Culture=fr, PublicKeyToken=89
b483f429c47342
Oracle.DataAccess.resources, Version=10.2.0.100, Culture=it, PublicKeyToken=89
b483f429c47342
Oracle.DataAccess.resources, Version=10.2.0.100, Culture=ja, PublicKeyToken=89
b483f429c47342
Oracle.DataAccess.resources, Version=10.2.0.100, Culture=ko, PublicKeyToken=89
b483f429c47342
Oracle.DataAccess.resources, Version=10.2.0.100, Culture=pt-BR, PublicKeyToken
+=89b483f429c47342+
Oracle.DataAccess.resources, Version=10.2.0.100, Culture=zh-CHS, PublicKeyToke
n=89b483f429c47342
Oracle.DataAccess.resources, Version=10.2.0.100, Culture=zh-CHT, PublicKeyToke
n=89b483f429c47342
Policy.9.2.Oracle.DataAccess, Version=10.2.0.100, Culture=neutral, PublicKeyTo
ken=89b483f429c47342
See, I'm sure the assembly has been installed and in machine.config I used the right key/version. Weird thing is, Red Gate's reflector won't allow me to "Open" (from Cache) the dll, this prevented me to check if there exists "Oracle.DataAccess.Client.OracleClientFactory" within the assembly. So I select "Copy Local" and examined the dll from "Red Gates Reflector". There's no "Oracle.DataAccess.Client.OracleClientFactory" in the dll ???
RedGates Reflector - Screencap:
http://www.codeguru.com/forum/showthread.php?p=1831221#post1831221
STEP 3. Somebody advised to check and make sure "msvcr71.dll" is found under "ORACLE_HOME\bin" and if not copy from "D:\WINDOWS\system32". I did, it's ALREADY there.
REF:
http://www.oracle.com/technology/ora.../win06odp.html
http://social.msdn.microsoft.com/For...7-92c63ac82144
http://forums.oracle.com/forums/thre...89702�
Edited by: devvvy on Apr 9, 2009 2:57 AM
Thanks just installed from http://www.oracle.com/technology/software/tech/dotnet/utilsoft.html
It seems version is "2.111.6.20" - from machine.config there's a new line
<add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=2.111.6.20, Culture=neutral, PublicKeyToken=89b483f429c47342" />
i added reference to it from Visual Studio. It's working now.
There were two options: one for client, the other for server. I don't understand what it means but stick to "Client" which was the default. Is this okay?
At the end there was a reminder "Run Oracle Providers for ASP.NET SQL scripts located in D:\OracleODPNET\ASP.NET\SQL directory."
Anyway, I'm verrrry glad this is working now many thanks!!! (I feel like 10 years older)
Similar Messages
-
DBProviderFactories.GetFactory("Oracle.DataAccess.Client") very slow
The call to System.Data.Common.DBProvidersFactories.GetFactory("Oracle.DataAccess.Client") is taking over 2 minutes to return on my computer. By comparison, calls to GetFactory() for the System.Data.SqlClient and IBM.Data.DB2 takes less than a second.
Even more strange, the same call is very fast if I am running the code inside of the VS2010 debugger.
ODAC version 11.2.0.1.2 (32bit version)
Windows 7 64 bit
.NET 3.5 SP1
Oracle server - not relevant since test pgm is not connecting to a serve.
Code developed with VS 2010.
Test pgm built with:
- Target CPU=32 (so app runs as 32bit mode, instead of 64)
- Target Framework = .NET 3.5 SP1
The call has not always been this slow. I have been running with ODAC 11.2.0.1.2 since it's release. But, IIRC, the slowness just started several weeks ago.
Below is the test pgm:
Imports System.Configuration
Imports System.Data.Common
Module Module1
Sub Main()
CreateFactory("Oracle.DataAccess.Client")
CreateFactory("System.Data.SqlClient")
CreateFactory("IBM.Data.DB2")
End Sub
Sub CreateFactory(ByVal providerName As String)
Dim sw = New Stopwatch
sw.Start()
Dim factory = DbProviderFactories.GetFactory(providerName)
sw.Stop()
If factory Is Nothing Then
Throw New Exception(String.Format("DbProviderFactories.GetFactory({0}) failed", providerName))
End If
Console.WriteLine("DbProviderFactories.GetFactory({0}) call took {1} secs", providerName, sw.Elapsed.TotalSeconds)
End Sub
End ModuleThe output I get is:
DbProviderFactories.GetFactory(Oracle.DataAccess.Client) call took 130.1584958 secs
DbProviderFactories.GetFactory(System.Data.SqlClient) call took 0.0001462 secs
DbProviderFactories.GetFactory(IBM.Data.DB2) call took 0.1252213 secs
Please let me know if you need any more information. All help is appreciated.
JimAs I mentioned before, if I loaded the DBProviderFactory object, for the IBM.Data.DB2 provider, loading the Oracle.DataAccesss.Client provider ran quickly. The IBM.Data.DB2 provider always using a distributed transaction to communicate with the database. So, my guess is that the IBM DBProviderFactory was doing work to prepare for a distributed transaction. And this prep work allows the Oracle DBProviderFactory to run much faster.
So to test my theory, I created a TransactionScope object, before creating the Oracle DBProviderFactory. See new code below:
<pre>
Sub Main()
Using ts = New Transactions.TransactionScope()
CreateFactory("Oracle.DataAccess.Client")
End Using
End Sub
Sub CreateFactory(ByVal providerName As String)
Dim sw = New Stopwatch
sw.Start()
Dim factory = DbProviderFactories.GetFactory(providerName)
sw.Stop()
If factory Is Nothing Then
Throw New Exception(String.Format("DbProviderFactories.GetFactory({0}) failed", providerName))
End If
Console.WriteLine("DbProviderFactories.GetFactory({0}) call took {1} secs", providerName, sw.Elapsed.TotalSeconds)
End Sub
</pre>
And this was the result:
DbProviderFactories.GetFactory(Oracle.DataAccess.Client) call took 0.1925129 sec
a dramatic speedup.
Is this expected behavior? More importantly, is there a fix to make loading the Oracle DbProviderFactory faster without requiring the creation of a TransactionScope object?
Thanks,
Jim
Edited by: thompkin on Nov 18, 2010 10:55 AM -
Hi all,
I have an application that is working fine on windows XP. On windows 7, the same application cannot work cause of the tag oracle.dataaccess.client you can see below which is not recognized by the system. As soon as I start the application I get an error
message
Unrecognized configuration section oracle.dataaccess.client. Can someone help please before I get nuts.
<oracle.dataaccess.client>
<settings>
<add name=""EA_SERVICES"."SLI_SECURITY_PKG"."SEC_GROUPS_ADD".RefCursor.OUTPARAM" value="implicitRefCursor bindinfo='mode=Output'"/>
<add name=""EA_SERVICES"."SLI_SECURITY_PKG"."SEC_GROUP_MEMBERS_ADD".RefCursor.OUTPARAM" value="implicitRefCursor bindinfo='mode=Output'"/>
<add name=""EA_SERVICES"."SLI_SECURITY_PKG"."SEC_OBJECTS_ADD".RefCursor.OUTPARAM" value="implicitRefCursor bindinfo='mode=Output'"/>
<add name=""EA_SERVICES"."SLI_SECURITY_PKG"."SEC_RIGHTS_ADD".RefCursor.OUTPARAM" value="implicitRefCursor bindinfo='mode=Output'"/>
<add name=""EA_SERVICES"."SLI_SECURITY_PKG"."SEC_RIGHT_GROUPS_ADD".RefCursor.OUTPARAM" value="implicitRefCursor bindinfo='mode=Output'"/>
<add name=""EA_SERVICES"."SLI_SECURITY_PKG"."SEC_USERS_ADD".RefCursor.OUTPARAM" value="implicitRefCursor bindinfo='mode=Output'"/>
</settings>
</oracle.dataaccess.client>
Sherman Body loveSince this is an oracle section, I think you'll get more help over at the oracle forums.
https://community.oracle.com/community/developer/english/oracle_database/windows_and_.net/oracle_developer_tools_for_visual_studio
I would check the versions of the odp.net (oracle.dataaccess.dll) on both machines. The XP machine probably has the 11g client on it. And the windows 7 machine probably has the 12c client on it. -
oracle.dataaccess.client not recognized in app.config for edmMapping
Hi,
I installed ODTwithODAC112030 EF provider release version.
So I want to use custom EDM Mapping for boolean or something else.
But Entity Data Model can't recognize
<oracle.dataaccess.client>
<settings>
section in appConfig file.
I'm using Win 7 x64 , VS 2010 and x86 odac components.
How can i resolve this problem.
Thank you..Would you please do a simple test like follows?
1. create test table
create table test_table (c1 number(4) primary key not null, c2 number(1, 0), c3 number(2), c4 number(5, 0), c5 number(10, 0), c6 number(19, 0));
2. create a C# Console application and create a data model from test_table.
Because there is no custom type mapping specified in app.config, default mapping is used in the model.
Your CSDL section in Model1.edmx should show:
<EntityType Name="TEST_TABLE">
<Key>
<PropertyRef Name="C1" />
</Key>
<Property Name="C1" Type="Int16" Nullable="false" />
<Property Name="C2" Type="Int16" />
<Property Name="C3" Type="Int16" />
<Property Name="C4" Type="Int16" />
<Property Name="C5" Type="Int32" />
<Property Name="C6" Type="Int64" />
</EntityType>
3. Delete Model1.edmx.
4. Open app.config and add the following below </connectionStrings> and above </configuration>. Save changes.
<oracle.dataaccess.client>
<settings>
<add name="bool" value="edmmapping number(1, 0)" />
<add name="byte" value="edmmapping number(3, 0)" />
<add name="int16" value="edmmapping number(4, 0)" />
<add name="int32" value="edmmapping number(9, 0)" />
<add name="int64" value="edmmapping number(18, 0)" />
</settings>
</oracle.dataaccess.client>
5. Create a data model from test_table again.
The new model should be using your custom type mapping.
Your CSDL section in Model1.edmx should show:
<EntityType Name="TEST_TABLE">
<Key>
<PropertyRef Name="C1" />
</Key>
<Property Name="C1" Type="Int16" Nullable="false" />
<Property Name="C2" Type="Boolean" />
<Property Name="C3" Type="Byte" />
<Property Name="C4" Type="Int32" />
<Property Name="C5" Type="Int64" />
<Property Name="C6" Type="Decimal" Precision="19" Scale="0" />
</EntityType>
If it does not work for you, you may want to check the version of your Oracle.DataAccess.dll in the GAC.
gacutil /l Oracle.DataAccess
Or change the timestamp of app.config.
touch.exe app.config -
Oracle.DataAccess.Client.OracleDataAdapter exists in both v2 and v4
Hi there,
I am developing ASP Net application with ODP.NET 11.2.0.2.1 and VS 2010. The target framework is .Net framework 3.5 and I've explicitly Oracle.DataAccess reference to v.2, with
<add assembly="Oracle.DataAccess, Version=2.112.2.0, Culture=neutral, PublicKeyToken=89B483F429C47342"/>
, but when it compiled, it throw error
The type 'Oracle.DataAccess.Client.OracleDataAdapter' exists in both
'c:\WINDOWS\assembly\GAC_32\Oracle.DataAccess\2.112.2.0__89b483f429c47342\oracle.dataaccess.dll'
and 'c:\WINDOWS\Microsoft.NET\assembly\GAC_32\Oracle.DataAccess\v4.0_4.112.2.0__89b483f429c47342\oracle.dataaccess.dll'
c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\esptweb\df172a69\e974c60e\App_Code.eoge0t0f.4.cs
How can I fixed it?
Thanks for the help.Did you try adding that reference using the Add Reference command in Visual Studio instead? I've never seen it behave like this before.
There are two versions of the assembly, but it shouldn't be trying to load the .net 4 version if you have a reference to the .net 2 version and you're in a 2 (or 3.5) app. -
Hi,
I am using Visual Studio 2003. I am creating a ASP.NET Web Application NOT Windows Application.
I logged into Oracle as a DBA, but I got this message.
I wasn't sure if I missed anything when working on the Web.
Thanks for your help.
LuanHi Chris,
Thank you so much for your help.
Yes, I use oracle explorer. Sorry, the code is kind of long. Here is the code:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace WebBank
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
protected Oracle.DataAccess.Client.OracleDataAdapter oracleDataAdapter1;
protected Oracle.DataAccess.Client.OracleCommand oracleCommand1;
protected Oracle.DataAccess.Client.OracleConnection oracleConnection1;
protected System.Web.UI.WebControls.Button btnOK;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
private void Page_Load(object sender, System.EventArgs e)
// Put user code to initialize the page here
//DataSet ds = new DataSet();
//oracleDataAdapter1.Fill(ds);
//DataGrid1.DataSource = ds.Tables[0];
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
InitializeComponent();
base.OnInit(e);
DataSet ds = new DataSet();
oracleDataAdapter1.Fill(ds);
DataGrid1.DataSource = ds.Tables[0];
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
this.oracleDataAdapter1 = new Oracle.DataAccess.Client.OracleDataAdapter();
this.oracleCommand1 = new Oracle.DataAccess.Client.OracleCommand();
this.oracleConnection1 = new Oracle.DataAccess.Client.OracleConnection();
// oracleDataAdapter1
this.oracleDataAdapter1.SelectCommand = this.oracleCommand1;
this.oracleDataAdapter1.RowUpdated += new Oracle.DataAccess.Client.OracleRowUpdatedEventHandler(this.oracleDataAdapter1_RowUpdated);
// oracleCommand1
this.oracleCommand1.CommandText = "SELECT * FROM SYSTEM.CUSTOMER";
this.oracleCommand1.Connection = this.oracleConnection1;
// oracleConnection1
this.oracleConnection1.ConnectionString = "User Id=system;Data Source=TESTDB;Password=passwd;Persist Security Info=true;";
this.oracleConnection1.InfoMessage += new Oracle.DataAccess.Client.OracleInfoMessageEventHandler(this.oracleConnection1_InfoMessage);
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
this.Load += new System.EventHandler(this.Page_Load);
#endregion
private void oracleConnection1_InfoMessage(object sender, Oracle.DataAccess.Client.OracleInfoMessageEventArgs eventArgs)
private void oracleDataAdapter1_RowUpdated(object sender, Oracle.DataAccess.Client.OracleRowUpdatedEventArgs e)
private void btnOK_Click(object sender, System.EventArgs e)
DataSet ds = new DataSet();
oracleDataAdapter1.Fill(ds);
DataGrid1.DataSource = ds.Tables[0]; -
Oracle.DataAccess.Client.OracleException
Hi,
I am trying to cennect to our oracle database 8i using ODP.Net.
When I run my code I get the following Exception:
Oracle.DataAccess.Client.OracleException ?alc\7.0.3300.0__b03f5f7f11d50a3a\microsoft.visualc.dll at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, IntPtr opsSqlCtx, Object src, String procedure, String[] args) at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src, String[] args) at Oracle.DataAccess.Client.OracleConnection.Open() at WebApplication88.WebForm1.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\webapplication88\webform1.aspx.cs:line 30
I get said exception when I try to open the connection.
Here is my code:
try
OracleConnection conn;
conn = new OracleConnection();
conn.ConnectionString = "User Id=xxx;Password=yyy;Data Source=zzz";
conn.Open();
conn.Close();
catch(Exception ex)
Response.Write(ex.ToString());
All help greatly Appreciated,
yevyExact same thing happens for me, but no one here seems to want to help!
I'm wondering if their ODP.NET stuff even works at all! -
Oracle.DataAccess.Client.OracleException occurs when try to run application
Hello,
I have an application Winforms in Visual Studio 2005 with Database Oracle 10g XE.
In my development machine are all ok.
When I put the application in client machine the exception is raised: Oracle.DataAccess.Client.OracleException.
The error occurs when the access to Oracle begin.
The client 10g XE is ok in client machine. SQL*Plus run ok into 10g XE, and work normally.
What is need to do?
Thanks by any help.We need to know the exception message to have a chance at helping you.
Thanks
Greg -
Oracle.DataAccess.Client.OracleException: The provider is not compatible
I am getting an error, and I don't understand why I'm getting it.
Error:
Oracle.DataAccess.Client.OracleException: The provider is not compatible with the version of Oracle client
Environment:
ODP.NET, 10.2.0.2 (ODTwithODAC10202.exe install)
Oracle 9i database
Windows 2000, .NET 1.x framework
Before ODP.NET, Oracle 9.2 client
Server does not have Visual Studio installed
Just installed ODP.NET today; any time I attempt to access OracleConnection, I get the error above. I am a newbie to server installations; if something is obvious to you, it might not be obvious to me, so feel free to point out even the most basic things.
I did install ODP.NET (same version) on my own PC several months ago, running over the same database, and everything seems to be working fine...
Message was edited by:
user531571Yeah; apparently, the Oracle install on that server was known (by everyone but me, from the sounds of it) to be exceptionally fragile. Installing ODP.NET brought down all Oracle connections. Uninstalling ODP.NET broke (actually, shattered might be closer to the truth) the Oracle instance on that box. Our solution? Start from scratch with a new server. Another piece of information which would have been nice to know is that they were looking for an excuse to get rid of this server; I wouldn't have been running around like a madman trying to fix it (and stressing all the while).
So, the problem has been solved, but not in any kind of normal fashion. -
Oracle.DataAccess.Client.OracleDataAdapter.Update not working
Hi
I am using the Oracle.DataAccess.Client.OracleDataAdapter from Oracle.DataAccess runtime version v4.0.30319. I set the SelectCommand and retrieve data from Oracle without any problems using the adapter to fill a datatable. I then use the DataTable.Clear method to remove all rows and fill it again from a different source using a different adapter. I use the Oracle.DataAccess.Client.OracleCommandBuilder to create the Insert and Update commands and finally I call the update command of the using the original adapter in order to update the Oracle database but nothing is updated.
I examine the table row count at each stage and also display the table using a DataGridView on a form and all appears to be fine. No exception is thrown so I am stumped.
I would be grateful for any suggestions as to what I am doing wrong.
My environment is VS2010 Express
Edited by: user1947494 on 04-Feb-2011 05:46Hi,
Pretty tough without seeing any code. I really do not believe it has anything to do with the DataAdapter. What changed the specific row/rows after the second fill?
But, as a guess, take a look at the DataTable - Rows - RowState. Run the below(or some variant) method just prior to your update.
r,
dennis
public static DataTable GetDataTableChanges_Modified(DataSet dataSet, string dataTableName)
if (dataSet.Tables[dataTableName].Rows.Count > 0)
DataTable dt = dataSet.Tables[dataTableName].Clone(); ;
int c = 0;
foreach (DataRow r in dataSet.Tables[dataTableName].Rows)
DataRowState state = r.RowState;
switch (state)
case DataRowState.Modified:
DataRow anewrow_dr = dt.NewRow();
anewrow_dr.ItemArray = r.ItemArray;
dt.Rows.Add(anewrow_dr);
c = c + 1;
break;
default:
break;
if (c > 0)
return dt;
else
return null;
else
return null;
} -
Oracle.DataAccess.Client.OracleConnection
I have been reading for hours and just cant seem to make this work. I have a window app that used the ORACLEDATAACESS.dll it works great on the pc. i made the APP but when i try to redistribute i get this nasty message. I read from these forums that i should install the ODP.net net on the computer that will get the installation and i have done that but i cant see to get anywhere. Can someone please give me a tip and point out the obvious i just dont know what to do anymore. t
System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception. ---> Oracle.DataAccess.Client.OracleException The provider is not compatible with the version of Oracle client at Oracle.DataAccess.Client.OracleInit.Initialize()
at Oracle.DataAccess.Client.OracleConnection..cctor()
--- End of inner exception stack trace ---
at Oracle.DataAccess.Client.OracleConnection.Dispose(Boolean disposing)
at System.ComponentModel.Component.Finalize()
************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
Notepad
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Program%20Files/JAM/My%20Notepad/Notepad.exe
Microsoft.VisualBasic
Assembly Version: 8.0.0.0
Win32 Version: 8.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
System.Runtime.Remoting
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
Oracle.DataAccess
Assembly Version: 2.111.7.10
Win32 Version: 2.111.7.10
CodeBase: file:///C:/Program%20Files/JAM/My%20Notepad/Oracle.DataAccess.DLL
System.Data
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll
System.Transactions
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Transactions/2.0.0.0__b77a5c561934e089/System.Transactions.dll
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.Oh interesting. I imagine there's a lot of ways that issue could crop up. Thanks!
I am driving myself completely out of my mind having tried to move a "solution" from one computer
to another. That is not a nobrainer. I ran into an issue on my home computer that defied all efforts to
stop it (the cursed varchar columns) so I decided to give up and do the development at work. But the project has not liked the
move. That is such an issue for an faq: how to design your project and whatever so that it can be
moved from one development location to another, one database to another, and then,
how to deploy it. And yeah now that you mention it differences in drive letters might well be a
factor here. :-( -
Oracle.DataAccess.Client.OracleException ORA-29875 - ODCIINDEXINSERT error
Hi,
We are migrating data into our GIS repository using an application witch uses ODP fro .NET.
Yesterday, when we were importing parcels from a certain geographic zone we have got this error:
4430528 [4028] ERROR DBCommand - Error Executing Command [PARCELA.WRITE]
Parameters:
ResValue: [Int32]
POP_ID: [Int64]35397
PAR_ID: [Varchar2]
BLO_ID: [Decimal]836170
PAR_NUM: [Varchar2]1480296132900
geometry: [Blob]System.Byte[]
PAR_PON_ETI: [Blob]System.Byte[]
Oracle.DataAccess.Client.OracleException ORA-29875: failed in the execution of t
he ODCIINDEXINSERT routine
ORA-29400: data cartridge error
ORA-14450: attempt to access a transactional temp table already in use
ORA-06512: at "MDSYS.SDO_IDX", line 161
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 332
ORA-06512: at "SIG.PARCELA", line 354
ORA-06512: at "SIG.PARCELA", line 479
ORA-06512: at line 1 at pt.inga.db.Command.Execute(IDbConnection connection,
IDbCommand command, Boolean& closeConnection) in C:\code-base\inga\isig\src-1.0.
0.2\pt\inga\db\Command.cs:line 234
at pt.inga.db.Command.Execute(IDbConnection connection, OracleCommand command
, IDataRecord parentRecord, IDataRecord dataRecord, IOperationData operation, Bo
olean& closeConnection) in C:\code-base\inga\isig\src-1.0.0.2\pt\inga\db\Command
.cs:line 334
The error seems to be related with temporary tables manipulation, does it?
Has we didnât know what to do we try to import those parcels after dropping a spatial index over the parcelâs table and we succeed with the import.
Those any one has any ideas about this?
And about spatial indexes internals?
Thanks in advance,
Vitor
Versions:
Client: Oracle10g Data Provider for .NET 10.1.0.2.0
Clientâs OS: Windows 2003 server
Server: Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
Serverâs OS: AIX 5.2.0.0Vitor,
Yes, Oracle uses temporary tables as part of inserts/
deletes/updates on a table with a spatial index.
Temporary table usage internally should not
have any issues and we are not sure why this problem
surfaces. Opening a TAR on this with a simplified
testcase (and all config details: # of concurrent
sessions etc.) might help in a better understanding/
resolution of this issue.
In the meanwhile, as a workaround, you can do the
following:
- drop the spatial index
- migrate (insert) the data into the table from the
application
- recreate the spatial index
This will avoid the temporary table issue at hand.
- Ravi. -
Oracle.DataAccess.Client.OracleException not compatible version
Hi,
i have installed the oracle developer tools for VS2005.NET. In my programms i put a reference to the Oracle.DataAccess.dll Version 2.102.2.20 in my Project. I can start and run this Programm on the same PC without problems.
If i copy the Programm-Exe and the Oracle.DataAccess.dll on an other PC and start this Programm there, i became a Error-Message:
"Unbehandelte Ausnahme: System.TypeInitializationException: Der Typeninitialisier
er für Oracle.DataAccess.Client.OracleConnection hat eine Ausnahme verursacht. -
--> Oracle.DataAccess.Client.OracleException The provider is not compatible with
the version of Oracle client bei Oracle.DataAccess.Client.OracleInit.Initial
ize()"
Is there anybody that can help me?
thanks,
CarstenYou need to run the installer to install ODP.NET on the target machine. Simply copying a few files is not good enough (at least not until we support xcopy instant client).
-
Oracle.DataAccess.Client.OracleException ORA-06502: PL/SQL
I have the following Simple PL/SQL function:
FUNCTION INSERTFBEXP (
p_expid INTEGER,
p_run_identifier VARCHAR2,
p_run_complete INTEGER,
p_run_completion_status VARCHAR2,
p_complete_errors INTEGER
RETURN INTEGER
IS
newid INTEGER;
concheck INTEGER;
BEGIN
concheck := 1;
newid := 1;
INSERT INTO test.exp
(ID, concheck, expid, run_identifier,run_complete, run_completion_status, complete_errors
VALUES (test.id_testexp.NEXTVAL, concheck, p_expid, p_run_identifier, p_run_complete, p_run_completion_status, p_complete_errors
) RETURNING ID INTO newid;
RETURN newid;
END;
Which I am calling from the following .Net procedure:
Public Function insertTestExp(ByVal expid As Int32, ByVal Run_Identifier As String, _
ByVal Run_Complete As Boolean, ByVal CompletionStatus As String, ByVal Complete_Errors As Boolean) As Integer
Dim id As Integer
With m_OraCmd
.CommandText = "USER.FBPROCESS.INSERTFBEXP"
.CommandType = CommandType.StoredProcedure
With .Parameters
.Clear()
.Add(New OracleParameter("p_expid", OracleDbType.Int32)).Value = expid
.Add(New OracleParameter("p_run_identifier", OracleDbType.Varchar2, 50)).Value = Run_Identifier
.Add(New OracleParameter("p_run_complete", OracleDbType.Int32)).Value = Convert.ToInt32(Run_Complete)
.Add(New OracleParameter("p_run_completion_status", OracleDbType.Varchar2, 50)).Value = CompletionStatus
.Add(New OracleParameter("p_complete_errors", OracleDbType.Int32)).Value = Convert.ToInt32(Complete_Errors)
.Add(New OracleParameter("newid", OracleDbType.Int32)).Direction = ParameterDirection.ReturnValue
End With
Try
.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
Return CType(.Parameters(5).Value, Int32)
End With
End Function
When I attempt to run the .Net function I get the following error:
Oracle.DataAccess.Client.OracleException ORA-06502: PL/SQL
I have determined by trial and error that the problem is in passing the VARCHAR2 parameters. I do not have this problem with the Microsoft Oracle Provider. Can someone help me with what I'm missing? Thanks.Note that I have not tested your code... but, it looks like you are using bind by position (which is the default). In this mode the return value needs to be bound first since ODP.NET will generate code similar to this:
:ret_val := proc(:1, :2,...);That's where I would start anyway.
Hope that helps a bit,
Mark -
Oracle.DataAccess.Client stored procedure ORA-01403
Hello,
Microsoft announced that System.Data.OracleClient is deprecated and will be no more supported so I try to use the driver Oracle.DataAccess.Client after having installed ODP.
It works fine except for stored procedures.
After calling a stored procedure that increases a value in a column I meet this error :
ORA-01403: no data found
ORA-06512: at "XXXXX.MY_FUNCTION", line 15
ORA-06512: at line 1
Oracle Data Provider for .NET
at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)
at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, Boolean bCheck)
at Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery()
The same function worked very well during several years with OracleClient !
Does any body has an idea ?
Best regards
AlanHello,
I had the solution by an other forum.
It's necessary to define the property BindByName at true.
The driver OracleClient did that by default not the driver DataAccess !
Best regards
Maybe you are looking for
-
My Mac starts up fine in safe mode, but freezes before the login screen in normal mode.
I have the 2012 MBP, 4 GB of RAM, 500GB HD, 2.5GHz Intel i5 processor. Everything worked fine, until one day it freezes all of a sudden. I shut down and restarted. The Apple logo appears with the loading animation underneath. A few moments later,
-
Hi all, Is the "COST" column in explain plan CPU or MEMORY usage cost? or both Thanks
-
Create document set using ECMA Script
Hi, I want to create a document set in SharePoint 2010 document library where i have already included document set content type. Is there any way to create a document set using ECMA Script?? If yes, then please provide the sample code for this... Tha
-
Web Server 6.1 Service Pack 9 released
I'm delighted to report that Sun Java System Web Server 6.1 SP9 has made it into the wild: http://www.sun.com/download/products.xml?id=47d5d3eb This is a bug fix release. All users of Web Server 6.1 SPx are encouraged to upgrade.
-
Hello, another question about upgrades in my MacBook Alluminum (MB466LL/A). According to the specifications, this MacBook only supports 4GB. But, I have a doubt! It's per slot or is a total amount? Have you already tried to install 8GB (4GB per slot)