sql >> Databasteknik >  >> RDS >> Sqlserver

SSIS-anslutningsfel - Filnamnet är inte giltigt

Baserat på den information som presenteras gör du allt korrekt. Om du är ny på SSIS, en sak jag skulle föreslå, är att du skaffar en kopia av det utmärkta tillägget BIDSHelper . Den har fantastiska funktioner som verkligen kan spara tid, särskilt när det gäller konfigurationer och uttryck.

Jag skapade ett referenspaket som hade en Excel Connection Manager som pekade på C:\ssisdata\so_paulsmithjr.xls och kopplade upp allt.

Vid det här laget vet jag att saker fungerar så det var dags att få paketet att flytta. Jag skapade följande variabler och deras värden

  • CurrentFile - C:\ssisdata\so_paulsmithjr.xls
  • Platshållare - ##FILE_PATH##
  • TemplateConnection - Provider=Microsoft.Jet.OLEDB.4.0;Data Source=##FILE_PATH##;Extended Properties="Excel 8.0;HDR=YES";

En fjärde variabel är inställd på att vara ett uttryck (Högerklicka på variabel, egenskapsfönster. Ange Evaluate as Expression =True &Expression is below)

  • CurrentConnection - REPLACE(@[User::TemplateConnection], @[User::PlaceHolder], @[User::CurrentFile])

Jag jämförde CurrentConnection-värdet med ReferenceConnection (som är det ursprungliga värdet på Excel Connection Managers anslutningssträng) och saker och ting var en matchning. Vid det här laget, om jag skulle ändra värdet på CurrentFile till C:\ssisdata\so_paulsmithjr - Copy.xls, skulle det automatiskt återspeglas i värdet på CurrentConnection.

Det sista tricket skulle vara att använda ett uttryck i Excel Connection Manager. Återigen, högerklicka på CM och under Egenskaper kommer det att finnas uttryck. Det kommer inte att expandera eftersom det inte finns något under det. Klicka istället på ellipserna och välj sedan ConnectionString-egenskapen och välj ellipserna igen och dra ner @[User::CurrentFile] variabel. Klicka på OK x2 och nu är din anslutningshanterare inställd att användas varhelst CurrentConnection-variabeln anger.

Fungerar det bättre?




  1. PLS-00201 identifierare 'PACKAGENAME.PROCEDURENAME' måste deklareras

  2. Vad är SQLite

  3. hur man skapar en MySql-fråga för att visa löpande saldo från kredit och debet där flera kunder har individuella saldon

  4. Hur man får ett heltalsutdata från en SQL-fråga