Eroare de provocare a integrării Excel și SSIS: Nu se poate extinde intervalul numit (Programare, Excel, Ssis, Sql Server 2012, Ssis 2012)

user1810575 a intrebat.

Mesaj de eroare:Error in Microsoft.SqlServer.Dts.Runtime.TaskHost/Excel Destination [22] : SSIS Error Code DTS_E_OLEDBERROR. A apărut o eroare OLE DB. Cod de eroare: 0x80004005. O înregistrare OLE DB este disponibilă. Sursă: OLEO DB: „Microsoft Office Access Database Engine” Rezultat: 0x80004004005 Descriere: „Cannot expand named range.” (Nu se poate extinde intervalul numit).

Eroare în Microsoft.SqlServer.Dts.Runtime.TaskHost/Excel Destination [22] : Codul de eroare SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR. „Excel Destination.Inputs[Excel Destination Input]” a eșuat deoarece a apărut codul de eroare 0xC020907B, iar dispoziția rândului de eroare de pe „Excel Destination.Inputs[Excel Destination Input]” specifică eșecul pe eroare. S-a produs o eroare pe obiectul specificat al componentei specificate. Este posibil să existe mesaje de eroare postate înainte de aceasta, cu mai multe informații despre eșec.

Sarcină: Încercarea de a exporta date SQL în mai multe foi de calcul Excel. Fiecare stare ar fi o foaie. 50 de state ar fi 50 de foi de calcul Excel în cadrul unui singur fișier Excel.

Cum realizez acest lucru: 1. Sarcina de script: Verifică existența fișierului Excel, dacă există, apoi șterge fișierul. 2. Sarcina SQL cu Excel Connection Manager (2007) ar crea fișierul/sheet-ul Excel. Am 50 de sarcini SQL într-un container, aceste sarcini creează doar noi foi în cadrul aceluiași fișier. Managerul de conexiuni Excel 2007 are o expresie care are Provider=Microsoft.ACE.OLEDB.12.0.

Expresie:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +  @[User::DynExcelFilename] + ";Extended Properties=
Excel 12.0 XML;HDR=YES
;"

@DynExcelFilename
"\ABC_" + (DT_WSTR,4) YEAR( GETDATE()  )  + "_" +
 (DT_WSTR,2) MONTH( GETDATE()  )  + "_" +  (DT_WSTR,2) DAY( GETDATE()  ) + ".xlsx"

Deci, nume de fișier dinamic în fiecare zi. 3. Sarcină de flux de date> Sursă OLE cu interogare SQL & Destinația Excel conectată la managerul de conexiuni Excel. Am 50 de sarcini de flux de date care împing datele în mai multe foi de calcul (din moment ce fișierul & mai multe foi deja create în #2).. le folosesc aici.

Acest lucru a folosit funcționează perfect bine mai devreme până când recent a făcut upgrade de server și a adăugat SQL 2012 & SSDT 2012 wrappers. De atunci primesc eroarea de mai sus.

Orice sugestie ar fi apreciată.

Comentarii

  • Posibil duplicat al Crearea pachetului SSIS în SSDT. Despărțirea condiționată în sarcina de flux de date provoacă întreruperea pachetului.  > Por Paul Roub.
2 răspunsuri
user3735317

Am găsit răspunsul într-o altă postare. Am încercat să scriu pe mai multe foi din aceeași sarcină Data Flow. Crearea unei sarcini Data Flow diferite pentru fiecare foaie a rezolvat problema!

Crearea pachetului SSIS în SSDT. Divizarea condiționată în sarcina Data Flow provoacă întreruperea pachetului

GeorgiG

Am avut aceeași problemă din cauza unei alte probleme. Trebuia să export o numărătoare ordonată în Excel, dar numerele continuau să fie salvate ca text. Am găsit o soluție, care a constat în includerea unui rând fictiv cu tipul de variabile potrivite. Problema este că, probabil, rândul fictiv interferează cumva cu lista ordonată. Când l-am eliminat, totul s-a rezolvat.