I want to copy an Oracle Database to a DB2 one using DTS in SQL Server 2000.
When I set up both connections using their respective driver, I can read both databases, and link the copy operations between them.
But when I want to run the DTS package, an error shows up saying "Driver not capable."
Here's the log, thanks in advance.
Step 'DTSStep_DTSDataPumpTask_1'
failed
Step Error Source: Microsoft Data
Transformation Services (DTS) Data
Pump Step Error Description:The number
of failing rows exceeds the maximum
specified. (Microsoft OLE DB Provider
for ODBC Drivers (80004005): [IBM][CLI
Driver] CLI0150E Driver not capable.
SQLSTATE=S1C00) Step Error code:
8004206A Step Error Help
File:sqldts80.hlp Step Error Help
Context ID:0
My suggestion would be to check the driver information and see if you can get a newer version from either Microsoft or IBM. You can also try going through an ODBC connection with a machine DSN. I believe that a lot of people had this problem when upgrading to SP 4 of SQL Server 2000.
Have you tried unchecking the "Use Transactions" checkbox on the Advanced tab of the DTS package properties?
Related
I have some troubles to automatize a package SSIS with a job SQL Server.
I have to get some data from a DB PostgreSQL to a DB SQL Server. For that, I'm using an ODBC connector (downloaded from http://www.postgresql.org/ftp/odbc/versions/msi/ and added using administrator console odbc in C:\Windows\SysWOW64\odbcad.exe):
driver odbc:
odbcad:
To be able to run the SSIS package, I had to change debugging settings in SSDT to run the package in 32 bits mode :
So far, everything works fine, but when I'm trying to automatize it with a SQL Server job, the job fails. Yet, I specified to my job to run in 32 bits mode too:
Below, the errors I got (sorry it's french):
The most meaningful error is
failed to call method acquireconnection to connection manager "PostgreSQL". Error code : 0xC0014009
I'm stuck & every related posts I found are solved using the checkbox "32 bits mode" checked on the job.
Thank's to M.Ali, I found the solution.
I just needed to add the DSN connection under System because the job SQL Agent is launch with another account than my current user.
Aware that this topic has been raised many times here (I have gone through the posts), but none of the suggestion on the posts has resolved my issue.
When I attempt to create a linked server to the oracle database from SQL Server Management Studio, I get the error:
Cannot create an instance of OLE DB Provider 'OraOLEDB.Oracle' for
linker server ''. (Microsoft SQL Server, Error: 7302)
My understanding of this error is that the Oracle provider is not installed correctly or not at all.
To check this I ran 'ODBC Data Source Administrator (64-bit) and attempted to add the provider (which was not available).
To resolve this I fully installed Oracle 10g Client as an admin and restarted the server. I added the new oracle bin folder to the environment %PATH% as well as %TNS_ADMIN% to point to the tnsnames.ora file.
I have run 'tnsping' using the value specified in the tnsname.ora file and it is able to connect.
I have exhausted my ideas to get the oracle provider recognised by the ODBC 64 bit connector.
Does anyone have any idea that could resolve this issue?
Thank you for any help.
The solution was to follow the steps suggested by Dmitry. However, make sure you carry out the following step:
C:\Users\dbrowne\Downloads\ODAC121010Xcopy_x64>.\install.bat oledb
c:\oracle\odac64 odac64 true
as an admin!
My boss wants me to figure out a problem we are facing. The problem is that we have a SSIS Project we built using Microsoft SQL Server data tools and are trying to execute that package on SQL Server 2014 Management studio.
It is listed under the SQL Server Agent as a Job and when we execute the job, we get an error: Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E4D. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E4D Description: "Login failed for user '********'."
In our SSIS properties under security, our protection level is "EncryptSensitiveWithUserKey". I've done a ton of research and it shows to either change that property to "Don'tSaveSensitive", which we need to save the password, or creating a user proxy to serve as a median across the platforms.
We are able to execute the project on the SQL Server Data Tools interface, but not when uploading the Job onto SQL Server 2014 Management Studio. We believe it's because the login is failing as stated in the error above.
How would I go about connecting the two platforms together? Would a user proxy work for this case?
I am still new to this, so please correct any errors I have above kindly.
When you use encrypt with user key that means that when the developer on the current machine, using the current login info, SSIS will decrypt everything when the package is opened by the developer on the same machine. To use the package on another machine you should use another setting such as EncryptSensitiveWithPassword.
Actually my job is take a backup data from a mysql data table to a SQL Server table.
So I created a DTS package in SQL Server 2000. When I manually run the the package, it runs successfully without any errors, and the data got transfered from MySQL to SQL Server.
But when I run the package using schedule jobs I got below error
DTSRun: Loading...
DTSRun: Executing...
DTSRun OnStart:
DTSStep_DTSDataPumpTask_1 DTSRun OnError: DTSStep_DTSDataPumpTask_1,
Error = -2147467259 (80004005) Error string: [Microsoft][ODBC
Driver Manager] Data source name not found and no default driver
specified Error source: Microsoft OLE DB Provider for ODBC Drivers
Help file: Help context: 0
Error Detail Records:
Error: -2147467259 (80004005); Provider Error: 0 (0)
Error string: [Microsoft][ODBC Driver Manager] Data source name not found
and no default driver specified
Error source: Microsoft OLE DB Provider for ODBC Drivers
Help file: Help context: 0
DTSRun OnFinish: DTSStep_DTSDataPumpTask_1 DTSRun: Package execution
complete.
So please help me on this.....
As the commenter mentioned, it could be a data source configuration problem - if you've set up your MySQL DSN as a user DSN rather than a system DSN, you'll need to change that. Open the ODBC configuration tool and go to the "System" table, rather than "User" (where it defaults) and create your data source there.
It could also be ax x64 problem - if the version of Windows you're using is x64, then the ODBC panel that opens by default shows x64 data sources. If you're using the x86 version of SQL Server (SQL 2000 has both), then you'll need to create the data source in the x86 ODBC administrator, which can be launched from:
C:\Windows\SysWOW64\odbcad32.exe
Once they're launched, they look exactly the same, so it can be hard to tell which one you've got open. A general indicator is that x64 driver list is usually way shorter - on my machine, there are about 25 drivers in the x86 version and only 3 in the x64 version. Keep in mind that if you're using SQL 2000 x86, you'll also need to install the x86 version of the MySQL driver, even if your server is x64.
I'm getting a Connection Busy With Results From Another Command error from a SQLServer Native Client driver when a SSIS package is running. Only when talking to SQLServer 2000. A different part that talks to SQLServer 2005 seems to always run fine. Any thoughts?
As I just found out, this can also happen on SQL 2005 if you do not have MARS enabled. I never even knew that it was disabled by default, but it is. And make sure you are using the
"NATIVE OLEDB\SQL Native Client" connection type. If you're using the "OLEDB.1" type connection (or whatever...) MARS is not even an option, and you get the SQL 2000 behavior, which is nasty.
You can enable MARS by opening the connection properties, and clicking "All", and scolling down in Management Studio.
I know your question has long since been answered, but I'm just throwing this in for the next sucker like me who gets burned by this.
Had this error today with MS ODBC Driver 11 for SQL Server for Linux to SQL Server connection. Wanted to help next searcher considering this was the first Google search result when I made the search.
You need to set MARS_Connection in /etc/odbc.ini as following:
[ConnName]
Driver=ODBC Driver 11 for SQL Server
Server=192.168.2.218,1433
Database=DBNameHere
MARS_Connection=yes
Speaking of MS ODBC Linux Driver: It is a complete PITA to deal with it but I insisted using native solution. I experienced too many walls especially working with ZF2, however, every trouble has a solution with the driver I can say. Just to encourage people using it instead quickly give up.
If somebody met this annoying bug while using PHP PDO with ODBC, then use closeCursor() method after query execution.
Microsoft KB article 822668 is relevant here:
FIX: "Connection is busy with results for another command" error message occurs when you run a linked server query
Symptoms
Under stress conditions, you may receive the following error message when you perform linked server activity:
Server: Msg 7399, Level 16, State 1, Procedure <storedProcedureName>, Line 18 OLE DB provider 'SQLOLEDB' reported an error.
OLE/DB Provider 'SQLOLEDB' ::GetSchemaLock returned 0x80004005:
OLE DB provider SQLOLEDB supported the Schema Lock interface, but returned 0x80004005 for GetSchemaLock .].
OLE/DB provider returned message: Connection is busy with results for another command
OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ::CreateSession returned 0x80004005.
Note The OLE DB source of the error may vary. However, all variations of the error message include the text "Connection is busy with results for another command".
Resolution
To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000.
As noted there, the problem was first corrected in SQL Server 2000 Service Pack 4.
This blog post by Mark Meyerovich, a Senior Software Engineer at RDA Corp, also provides some insight (now archived, because the original link went dead):
SQL Server service pack upgrade
A quick search on Google turns up the following article (http://support.microsoft.com/kb/822668):
FIX: "Connection is busy with results for another command" error message occurs when you run a linked server query.
It basically implies the issue is a bug and recommends an upgrade to Service Pack 4. We have started out with SQL Server 2000 SP3 and we do have some linked servers in the equation, so we give it a try. After the upgrade to SP4 – same result.
Just for information if somebody else have the problem. I tried connecting via NetCobol of Fujitsu on an SQLEXPRESS via ODBC with embedded sql and to solve the problem I had to change a value in the registry namely
\HKLM\Software\ODBC\ODBC.INI\MyDSN
with MyDSN as a string value:
Name - MARS_Connection
Value - Yes
I just put the information here if it can help.