I am trying to install ODT with ODAC in order to use Oracle with Entity Framework
it gives me the error
[INS-50016] Please install in a Regular Client Home, a new Oracle Home or an existing ODAC Home.
The error message is quite clear. You have to install also an Oracle Client (e.g. the Instant Client) - unless you use the Oracle Data Provider for .NET Managed Driver.
In case you have an Oracle Client already installed it might be the wrong version. Version of Oracle Client and Oracle Data Provider have to match exactly!
Instead of using ODAC, try the NuGet package. Oracle.ManagedDataAccess.EntityFramework
Related
Is there any way to connect to Oracle using TOAD without installing an Oracle client?
If you check Installation Guide, Database requirements specify:
An Oracle client must be installed and configured on the system where you are running Toad (...)
Therefore, I'd say no is the answer to your question.
I'm trying use Microsoft SSMA for Oracle to migrate a database onto Azure SQL, but I can't get it going. I've double checked the server name, server port, Oracle SID, password... everything. No matter the type of entry screen I use, I can't get it to connect to the on-premise Oracle instance.
I'm pretty sure the login information is all correct, and I should have a working connector to Oracle since I connect to it from TOAD on a daily basis. I tried installing Oracle libraries per previous posts but not sure if I did it successfully because the issues still remains.
What are the troubleshooting steps I should take in order to make this work?
Log in screen:
Error 1:
Unable to find specified provider.
Compatible Oracle Data Access Connectivity libraries were not found on the machine. You can install them from Oracle product media or download it from Oracle web site.
Error 2:
Connection to Oracle failed.
ORA-01017: invalid username/password; logon denied
Error 3:
Connection to Oracle failed.
Network Naming: No LDAP server detected or configured
After a few more days of debugging, I was finally able to get SSMA to work. This answer helps to document my solution for personal use, as well as hopefully answer anyone else's question in the future.
After looking at the list of prerequisites to have SSMA running, I saw that I needed to have a correct Oracle client running. After some internal discussion, it was likely that the Oracle client SSMA needed was different than the one my computer already had for TOAD. The .Net provider for the TOAD connectors was probably not useful for SSMA.
We run Oracle 11g but I had to install Oracle 12c because 11g did not support Windows 10 apparently. Not too much of a roadblock here.
I found this guide to install Oracle client 12c pretty helpful. Shoutout to my alma mater.
Unfortunately the installer kept freezer, but using this former post, I was able to bypass it with the windows command:
setup.exe -ignoreprereq -J"-Doracle.install.client.validate.clientSupportedOSCheck=false"
After that, I saw different error messages when trying to connect SSMA. I kept trying different options with my logins until it worked. Provider: OLEDB Provider, Mode: Standard.
After being granted the appropriate permissions, I was finally able to access our internal tables and objects.
It was a pretty annoying question with a lot of rabbit holes along the way, but it was definitely worth it, being able to translate all our Oracle schemas to Azure SQL with a few clicks. Hope this helps!
Make sure to validate all steps mentioned below before going to install Microsoft SQL Server Migration Assistant for Oracle.
Make sure you have already installed SQL Server instance that will host the migrated database. Also keep in mind that you are not installing SQL Server Express edition to host the migrated database.
You must have sysadmin account to install SQL Server Migration Assistant for Oracle.
Make sure to install SSMA for Oracle on the server that will host newly migrated database on SQL Server.
It is recommended to install Oracle client software on your target system where SQL Server Instance is running.
Make sure your windows server has Microsoft Windows Installer 3.1 or a later version. Port 1434 should be open.
For more details, You can reference: How to Install SSMA for Oracle to Migrate Oracle Database to SQL Server.
Here's the Azure Database Migration Guide: Migrate Oracle to Azure SQL Database. As you prepare for migrating to the cloud, verify that your source environment is supported and that you have addressed any prerequisites. This will help to ensure an efficient and successful migration.
Connect to Oracle with Oracle Client Provider.
Azure also has other way can help you migrate Oracle database to Azure SQL database, such as with Azure Data Factory. If you still has the connect error. I think you can try to use it. Please reference this tutorial: Copy data from and to Oracle by using Azure Data Factory.
Hope this helps.
I have a .net application which uses Oracle InProc server 5.0 Type Library(OracleInProcServer.dll) to connect with oracle database. Until now we were using Oracle 11g client but now we have to upgrade to Oracle 12c. I am not getting the OracleInProcServer.dll in COM components. Is it deprecated? If yes then what is the best alternative of this with minimum code changes in application. Please advice.
OO4O has been deprecated in 12c so we longer ship it. But it will still work fine - you just need to download the components, which are in ODAC.
Download that here
http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html
I have been getting a strange error since today when trying to migrate data from an Oracle DB Server to SQL Server 2017 Express using the latest SQL Server Migration Assistant for Oracle v7.5
The error affects certain tables only and read simply: The value is Null
I don;t know how to trace the issue especially because it was working last week when I did the last import on an older version of SSMA. Just this morning the new version got installed.
I was using "Oracle Client Provider" to connect to Oracle and I was running into the same problem.
I switched to OLEDB Provider and TNSNAME mode just to test. That solved the problem for me!
This was a bug in SSMA v7.5, and has been fixed in version v7.6.
I can connect to my database just fine if I do this
let connection = new Oracle.DataAccess.Client.OracleConnection("User Id=hr;Password=hr;Data Source=localhost")
connection.Open()
This, however, will not work
#r "FSharp.Data.SqlProvider"
open FSharp.Data.Sql
type sql = SqlDataProvider<
ConnectionString = "User Id=hr;Password=hr;Data Source=localhost",
DatabaseVendor = Common.DatabaseProviderTypes.ORACLE,
ResolutionPath = "C:\apps\Oracle\product\12.1.0",
Owner = "hr">
The compiler says:
The type provider 'FSharp.Data.Sql.SqlTypeProvider' reported an error:
Exception of type 'System.Collections.Generic.KeyNotFoundException'
was thrown.
My best guess is a problem with my ResolutionPath. The ResolutionPath I've pasted here is to my Oracle client. I've also tried a ResolutionPath of [OracleClient]\bin and gotten the same result.
The resolution path of your Oracle should point to Oracle's ODP.NET (Oracle Data Provider for .NET), instead of common installation path of Oracle Database of Oracle 12c. Because basic installation of Oracle database since Oracle 11g and then 12c can't be guaranteed to include ODP.NET installation properly. Also ODP.NET installation is independent of any Oracle database installation on your machine.
You can download ODP.NET by going to Oracle Data Access (ODAC) for Windows page:
http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html
Then download the ODP.NET provider for your specific needs, either 32 or 64 bit.
Install the latest ODP.NET, and then point the ResolutionPath to the path of ODP.NET installation, especially the folder that contains common DLL of ODP.NET.
Let me know if you still have problems. Good luck!
The key UserId needs to have a space between "User" and "Id", just like in your working connection string.