sql >> Database teknologi >  >> RDS >> Sqlserver

Hvorfor mislykkes min ODBC-forbindelse, når jeg kører en SSIS-indlæsning i Visual Studio, men ikke når den samme pakke kører med Execute Package Utility

Gør nogle antagelser her, men jeg vil antage, at dette er et 32 ​​vs 64 bit problem. For at bekræfte, prøv disse to kommandoer fra en kommandoprompt (Windows-tast, R, cmd.exe eller Start, Kør, cmd.exe)

"C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\dtexec.exe" /file C:\myPackage.dtsx
"C:\Program Files\Microsoft SQL Server\110\DTS\Binn\dtexec.exe" /file C:\myPackage.dtsx

Den første kører din pakke i 32 bit-tilstand, mens den anden kører den i 64-bit-tilstand. Dette kommer til at betyde noget, da dine drivere og eventuelle DSN'er, du har oprettet, kun vil være synlige i 32/64 bit verdenen.

Lettelse af SSDT

Når du har identificeret, hvilken du har brug for, sandsynligvis 32-bit version, skal du sikre dig, at dit projekt bruger den passende kørselstid. Højreklik på dit projekt og vælg Egenskaber, og naviger derefter til fanen Debugging under Konfigurationsegenskaber.

Efter at have inverteret Run64BitRuntime-værdien, antager jeg, at din pakke vil fungere inde fra SSDT.

Rettelse af SQL Agent

Du bliver nødt til at redigere det eksisterende SQL Agent-job for at ændre bitedness af jobtrinnet. Dette vil være under fanen Konfiguration og derefter under fanen Avanceret. Marker/fjern markeringen af ​​32-bit runtime.

Løgn og bedrag

Observante folk kan se, at dtexec'en tilbyder en /X86 mulighed. Tro det ikke. Den eneste måde at få den korrekte bithed på er eksplicit at kalde den korrekte dtexec.exe. Dokumentationen siger endda så meget, men ingen læser dokumentation.

Denne mulighed bruges kun af SQL Server Agent. Denne mulighed ignoreres, hvis du kører dtexec-værktøjet ved kommandoprompten.




  1. Forhindre automatisk stigning på MySQL duplikatindsættelse

  2. Hvor mange brugere kan få adgang til support?

  3. Sådan opdateres/slettes med elementer fra to forskellige tabeller SQLite

  4. Fejl ved push af data til Heroku:tidszoneforskydning uden for rækkevidde