DTEXEC.exe for running an SSIS 2013 package - sql-server

I have SQL Server 2012, Visual Studio 2013 and I'm trying to run a .dtsx via the command line using dtexec.
If I use: dtexec.exe /file "C:\MyFolder\sub folder \the ssis Package .dtsx"
will return:
Couldn't load package because of error 0XC0010014. This occurs when
CPackage:: Load from XML fails.
If, however I use:
"C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\DTExec.exe" /file "C:\MyFolder\sub folder \the ssis Package .dtsx"
I can see that part of the task is running, since it's warning me about trimming two columns in a task I have (the same warning I was getting in SSIS, but everything worked).
Warning: 2016-01-28 13:41:49.53 Code: 0x802092A7 Source: Data
Flow Task OLE DB Destination [99] Description: Truncation may occur
due to inserting data from data flow column "ISSUER_OTHER_NAME" with
a length of 124 to database column "ISSUER_OTHER_NAME" with a length
of 68.
After that, I am getting:
Error: 2016-01-28 13:41:49.68 Code: 0xC000F427 Source: Execute
Process Task Description: To run a SSIS package outside of SQL
Server Data Tools you must install Execute Process Task of Integration
Services or higher. End Error DTExec: The package execution returned
DTSER_SUCCESS (0).
It looks like others had this on a different host without any Integration Services installed. But I am using it in the same place and even the warnings are working since I can see the names of some columns.
My guess is the version of dtexec.exe which as you can see I am taking it from the 120\dts\binn\ folder.
Is this the right one to use for my SSIS?
Please see below my SSIS version and SQL Server

I developed an SSIS package in VS2013 and had a lot of compatibility issues deploying against SQL 2012. The consistent solution that worked for me was to install SQL 2014 and use that version of DTExec to publish to SQL 2012.

Try running the 32 bit version from the command line using the version from the x86 folder instead of the 64bit version, C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\ .

This is a license check - you need to install at least the Integration Services component of SQL Server 2012 on your machine.

Related

SSIS Error "To run a SSIS package outside of SQL Server Data Tools you must install Standard Edition (64-bit) of Integration Services "

I am using Visual studio ultimate 2012, SQL Server 2017 and Sql Server Data tools 2012. I am working with windows 10 64 bit.
My package consists of script tasks(c#) and Sql commands and it runs successfully from SSDT, but while trying to run my package from CMD i am getting
To run a SSIS package outside of SQL Server Data Tools you must install Standard Edition (64-bit) of Integration Services.
If i make another empty package and try to run it then it runs successfully too.
Please help.
(1) Integration Services (Shared feature) installation
I think that the issue is that you have installed SQL Server Data Tools (SSDT) for Visual Studio but you didn't install the Integration Services (Shared feature) from the SQL Server Installation which is necessary to execute .dtsx packages outside of visual studio.
For more information check the following link:
SSIS Error – “To run a SSIS package outside of SQL Server Data Tools you must install…”
(2) Execute using dtexec(32-bit)
Another thing you can try is to execute package via 32-bit dtexec.
As mentioned in the following Microsoft Documentation:
On a 64-bit computer, Integration Services installs a 64-bit version of the dtexec utility (dtexec.exe). If you have to run certain packages in 32-bit mode, you will have to install the 32-bit version of the dtexec utility. To install the 32-bit version of the dtexec utility, you must select either Client Tools or Business Intelligence Development Studio during setup.
By default, a 64-bit computer that has both the 64-bit and 32-bit versions of an Integration Services command prompt utility installed will run the 32-bit version at the command prompt. The 32-bit version runs because the directory path for the 32-bit version appears in the PATH environment variable before the directory path for the 64-bit version. (Typically, the 32-bit directory path is :\Program Files(x86)\Microsoft SQL Server\100\DTS\Binn, while the 64-bit directory path is :\Program Files\Microsoft SQL Server\100\DTS\Binn.)
More info at:
How to execute a package in 32-bit mode using dtexec.exe?
Also, similar issues was mentioned in other links, you can check them for more information:
SQL Server Central Forum - Run a SSIS package outside of SQL Server Data Tools you must install of Integration
Code Project - How To run a SSIS package outside of SQL Server Data Tools ?
MSDN - To run a SSIS package outside of SQL Server Data Tools you must install Standard Edition of Integration Services or higher
To run a SSIS package outside of SQL Server Data Tools you must install Move File to Archive of Integration Services or higher
SE DBA - Error: “To run a ssis package outside of sql server data tools you must install [send successful email] of Integration Services or higher.”
Adding to Hadi's answer, the change would be to use the right version which in my case was to use
C:\Program Files\Microsoft SQL Server\130\DTS\Binn>
Instead of
C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn>
I had the same error and my integration services of 2017 was installed, so the suggested solution was not relevant.
i tried many options including uninstall and re-install, what solved finally was an upgrade to ENTERPRISE EDITION!
I found out that in a server where the dtexec ran successfully an ENTERPRISE VERSION was installed, while in the problematic server there was not an ENTERPRISE edition.
How did i find it? i ran the following in both servers:
run setup.exe file of SQL SERVER 2017 installation
on the left menu you will see "tools" - press the link
find: "installed SQL server features discovery report"
you will see in edition column an empty cell vs. "Enterprise Edition"
which is the successful one!
how did i upgrade in the problematic server?
run setup.exe file of SQL SERVER 2017 installation
on the left menu you will see "maintenance" - press the link
find: "edition upgrade"
follow the instructions, in my case since my organization had an automatic updated key i just pressed "next" a few times until a successful upgrade
good luck!

SQL Server 2016 SSIS packages failing when deployed using VS2015 SQL Server Data Tools v14

Visual Studio 2015 Update 3 14.0.25341.01
SQL Server Data Tools 14.0.61707.300
SQL Server 2016 13.0.4435.0
I recently had a message in VS2015 that a update for SQL Server Data Tools was available. I decided to download and install it and now packages I deploy to SQL 2016 no longer work.
I do not know what my version of SQL Server Data Tools was before I installed the update, but I do know that inside my SSIS Project, I now see the TargetServerVersion option of SQL 2017 (used to only go to SQL 2016).
I confirmed my project (which is the project I use for all my SSIS packages and have since we deployed SQL 2016) is still set to TargetServerVersion SQL 2016. The project is set to Project Deployment Mode, and I've always deployed by opening a package, and clicking File -> Save Copy of filename.dtsx As... and then deploying to target SQL. Nothing has changed in our environment outside of my upgrade of SQL Server Data Tools.
Here's the error I receive when I try to run the package:
Executed as user: DOMAIN\ProxySvc.
Microsoft (R) SQL Server Execute Package Utility
Version 13.0.1601.5 for 64-bit
Copyright (C) 2016 Microsoft. All rights reserved.
Started: 3:32:33 PM
Error: 2017-09-28 15:32:33.37
Code: 0xC0010018
Source: Package_Name
Description: Error loading value "<DTS:ConnectionManagers xmlns:DTS="www.microsoft.com/SqlServer/Dts"><DTS:ConnectionManager DTS:refId="Package.ConnectionManagers[SERVER A]" DTS:CreationName="OLEDB" DTS:DTSID="{E5D397C2-477A-4E04-B930-613DDE14A054}" DTS:ObjectName="SERVER A"><DTS:ObjectData>" from node "DTS:ConnectionManagers".
End Error
Could not load package "\Maintenance Plans\Package_Name" because of error 0xC0010014.
Description: One or more error occurred. There should be more specific errors preceding this one that explains the details of the errors. This message is used as a return value from functions that encounter errors.
Source:
Started: 3:32:33 PM Finished: 3:32:33 PM Elapsed: 0.109 seconds.
The package could not be loaded.
The step failed.
The packages will however work if I deploy them using DtUtil from the SQL 2016 Dev Edition I have installed locally. For example:
"C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\dtutil" /FILE "C:\filename.dtsx" /DestServer SERVERNAME/INSTANCE /Encrypt SQL;"Maintenance Plans\Package_Name";2;PKG_PA$$
Has anyone else had issue with this? I can't be the only person deploying package this way that suddenly had the packages stop working when deployed in VS2015 and SQL Server Data Tools.
I've also opened a Connect for this issue.
Edit: I tried Visual Studio 2017 with the preview edition of SQL Server Data Tools for it. I get the same issue. Package deploys fine, but the package will not run.
Edit 2: If I create an empty package, it runs successfully (granted doing nothing). If I create an empty package with nothing but a single OLEDB connection, it fails with the message above. It also fails with the same message with an empty package and only a single ADO.NET connection.
Edit 3: I deployed two packages. One using SSDT (that fails to run on the server with error above) and another with DTUTIL that executes on the server fine. The packages are the exact same except for how they were copied to the server. I then used DTUTIL to copy the package back to my machine and compared them. Outside of the DTS:LastModifiedProductVersion version differences, the only other change is the EncryptionMethod Algorithm. The one deployed using SSDT says:
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
And the one deployed using DTUTIL:
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
Obviously the Salt, IV, and CipherValues are different but I wonder if the encryption being applied by SSDT when deploying is causing the issue.
I had the same exact issue. What solved it for me was this: http://microsoft-ssis.blogspot.com/2016/12/ There's a missing assembly reference in the devenv.exe.config file. If you deploy via command line or using the ISDeploymentWizard, that's probably your issue.

To run a SSIS package outside of SQL Server Data Tools you must install Move File to Archive of Integration Services or higher

I am testing SSIS package that I upgraded from VS2005 project to VS2013 (package deployment model) project. This is very simple package which just processes files one by one from specific location and updates database based on those files and once done it moves file to archive or non-parsing directory based on outcome. And I am getting odd error and I cant find solution for that.
Issue is my package runs fine and it does exactly what it suppose to do (extracting data from file and inserting into table). But part of this operation is to move file to archive (file system task). And I am getting this error "Description: To run a SSIS package outside of SQL Server Data Tools you must install Move File to Archive of Integration Services or higher."
I have used VS2013 with SSDT BI for 2014 and SSIS Designer version matches with dtexec utility in my dev test VM (12.0.2000.8 x64 bit). Below is output from CLI.
Microsoft (R) SQL Server Execute Package Utility
Version 12.0.2000.8 for 64-bit
Copyright (C) Microsoft Corporation. All rights reserved.
Started: 10:45:58 AM
Progress: 2016-02-11 10:45:59.20
Source: Truncate StagingTable
Executing query "TRUNCATE TABLE StagingTable".: 100% complete
End Progress
Progress: 2016-02-11 10:45:59.25
Source: Insert into Staging
Executing query "exec dbo.staging #xml_fileName,NULL,'C...".: 100
% complete
End Progress
Progress: 2016-02-11 10:45:59.25
Source: Move to MasterXML
Executing query "exec dbo.insertXML".: 100% complete
End Progress
Error: 2016-02-11 10:45:59.25
Code: 0xC000F427
Source: Move File to Archive
Description: To run a SSIS package outside of SQL Server Data Tools you must
install Move File to Archive of Integration Services or higher.
End Error
Progress: 2016-02-11 10:45:59.30
Source: Execute SQL get_next_file
Executing query "exec get_next_file".: 100% complete
End Progress
Progress: 2016-02-11 10:45:59.51
Source: Execute SQL notify_users
Executing query "exec notify_users".: 100% complete
End Progress
DTExec: The package execution returned DTSER_SUCCESS (0).
Started: 10:45:58 AM
Finished: 10:45:59 AM
Elapsed: 1.172 seconds
In latest effort, I installed VS2013 and SSDT BI for SQL Server 2014 in same machine where I am trying to run this package. And if I use VS, package runs fine but as soon as I try to run this package over CLI with following command it still fails with same message,
"C:\Program Files\Microsoft SQL Server\120\DTS\Binn\dtexec.exe" /f "C:\SSIS\Load_Files.dtsx" /ConfigFile "C:\SSIS\loadFiles_SSIS_Configuration.dtsconfig"
I am sure it has something to do about how SSIS works in VS2005 to VS2013 but just don't know where to look. Any suggestions ?
Just to give future visitors something to look on, in my case issue was I had two different version of SSIS installed on same machine. One was for 2005 and another for 2014. And oddly enough even I was explicitly pointing to newer version (as shown in later part of post) in my command, it was always using old version.
Once I had clean system with just SQL Server 2014 (& SSIS) same package ran without any issue. So it appears a limitation of some sort which doesn't allow to run two different versions of SSIS on same machine.
You need to install SQL Server and make sure to select Integration Services. Then run DTExec.exe from the new SQL server installation folder.
In my case I installed SQL server 2016 Standard Edition, and DTExec.exe was in the following location:
C:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTExec.exe
So your new command file (for SQL Server 2016) would look like this:
"C:\Program Files\Microsoft SQL Server\130\DTS\Binn\dtexec.exe" /f "C:\SSIS\Load_Files.dtsx" /ConfigFile "C:\SSIS\loadFiles_SSIS_Configuration.dtsconfig

SSIS package upgraded by deployment

In our QA virtual environment, which contains multiple SQL server, i wanted to deploy an SSIS 2012 package (ispac, project deployment) maintained through Visual Studio 2010. The destination SSIS server was 2012 but the client on the workstation included SQL server 2014. By executing the ispac package on the workstation and specifying to deploy on the SQL server 2012, the deployment went without any errors. But when executing the package on the SSIS server we get errors such as
"Package Name" : Error: The version number in the package is not
valid. The version number cannot be greater than current version
number.
"Package Name" : Error: Error loading value "8" from node
"DTS:Property".
"Package Name" : Error: Package migration from version 8 to
version 6 failed with error 0xC001700A "The version number in the
package is not valid. The version number cannot be greater than
current version number.".
All my package (.dtsx) have
<DTS:Property DTS:Name="PackageFormatVersion">6</DTS:Property>
As well as the manifest
<SSIS:Property SSIS:Name="PackageFormatVersion">6</SSIS:Property>
It looks like the SQL 2014 client or the workstation upgraded my package to V8 even though my destination server was V6.
When I deployed directly from the SQL 2012 server (which didn't have SQL 2014) everything deployed and ran as expected.
Is This the expected result ? or a problem
So what you're experiencing is expected behaviour citation needed. When an SSIS package is opened using the APIs, the package is updated to that APIs version. This allows a V-1 package to run on a Vcurrent server. There were changes to the formats and stuff so there are reasons a 2005 package may not run on a 2014 box but that's the intent. The bits on disk remain unaltered but the in-memory version is what gets updated.
Since the deployment used the ISDeploymentWizard in the 120 folder (SQL Server 2014), the first thing it did when it saw the 2012 version of the .ispac is convert it to a 2014 format. So, the in-memory version of this .ispac needs to get serialized into the SSISDB and those APIs are the same between 2012/2014. The DeployProject/deploy_project method just takes a binary object, it doesn't do any validation of what version those bits are, just that it has the right shape.
But, when you go to execute the package, that's when the API needs to look at the actual bits in there and discovers, this is a version I don't understand.
Some examples of what that API looks like on How to deploy an existing package in SQL Server 2012
I was able to get this resolved. The issue we had was that the server had both SQL Server 2012 and SQL Server 2014 installed. I was trying to install a package to the SQL 2012 instance, but even though you use VS 2010 Shell to develop the SSIS package, when you run the .ispac file in the file system it was kicking off the ISDeploymentWizard.exe from C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\ location. This was causing the package to automatically get upconverted to version 8 and so each time you executed the package on the SQL Server you would receive the " Error loading value "8" from node "DTS:Property" error.
To resolve simply do the following:
If you're deploying the package to SQL Server 2012 run the executable at this location: C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\ISDeploymentWizard.exe
If you're deploying the package to SQL Server 2014 run the executable at this location: C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\ISDeploymentWizard.exe
Then follow the wizard as normal to install the package.

SSIS - job scheduler error

I am using the scheduler to program the execution of a simple package of SSIS (it is a test).
This is the code I'm using in my .bat file:
#echo off
"C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\DTExec.exe" /FILE "Complete Path\Package 1.dtsx" /CHECKPOINTING OFF /REPORTING EWCDI
echo Finishing........
exit
The SSIS package is composed by an OLE Source -> Conditional split -> OLE Destination
When I try to execute it I've got the next error:
To run a SSIS package outside of SQL server Data Tool you must install
Conditional Split of Integration Services or higher.
By deleting the Conditional Split the problem is resolved. My question is, what to I need to install. or what is missing that is provoking this failure in the execution?
I am using MVS 2010 and SQL SERVER 2012.
SSIS package runs on client side. If you'd like to execute package on some environment, SSIS should be installed locally on this environment. If integration Service is not installed, you can develop and run packages in Business Intelligence Development Studio, but not as scheduled task. I guess you are trying to schedule package execution on a server where SSIS is not installed.

Resources