dtexec

2012-10-26 26 views
5

का उपयोग कर एक एसएसआईएस पैकेज चला रहा है मैं dtexec का उपयोग कर एक एसएसआईएस पैकेज चला रहा हूं। पैकेज मेरे सिस्टम पर बीआईडीएस में ठीक चलाता है। जब मैं शेड्यूल पर पैकेज चलाने के लिए SQL सर्वर एजेंट जॉब बनाता हूं। पैकेज चलने वाला चरण टी-एसक्यूएल कार्य के रूप में निर्धारित किया गया है, एक एसएसआईएस पैकेज नहीं है)। नौकरी में कोई त्रुटि नहीं है, लेकिन यह सर्वर पर मेरे इच्छित गंतव्य @ आउटपुट एक्सेल फ़ाइल भी नहीं बना रहा है।dtexec

इसके अलावा, जब मैं कमांड शेल में कमांड चलाता हूं, तो यह मुझे नीचे दिखाए गए त्रुटियों को वापस कर रहा है। अंततः, यह फाइलसिस्टम कार्य पर त्रुटियों को भी वापस कर देगा जो मैं फ़ाइलों की प्रतिलिपि बनाने के लिए उपयोग करता हूं, कह रहा हूं कि या तो स्रोत या गंतव्य मौजूद नहीं है !! जब बीआईडीएस में वही वैरिएबल वैल्यू मेरे लिए काम करती है, तो एसक्यूएल जॉब असफल क्यों होता है?

Started: 7:33:27 PM 
Error: 2012-10-26 19:33:27.60 
    Code: 0xC0016016 
    Source: 
    Description: Failed to decrypt protected XML node "DTS:Password" with error 0 
x8009000B "Key not valid for use in specified state.". You may not be authorized 
to access this information. This error occurs when there is a cryptographic err 
or. Verify that the correct key is available. 
End Error 
Error: 2012-10-26 19:33:27.78 
    Code: 0xC00F9304 
    Source: GICSReport Connection manager "Excel Connection Manager" 
    Description: SSIS Error Code DTS_E_OLEDB_EXCEL_NOT_SUPPORTED: The Excel Conne 
ction Manager is not supported in the 64-bit version of SSIS, as no OLE DB provi 
der is available. 
End Error 
Error: 2012-10-26 19:33:27.78 
    Code: 0xC020801C 
    Source: Data Flow Task Excel Destination [22] 
    Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAG 
ER. The AcquireConnection method call to the connection manager "Excel Connecti 
on Manager" failed with error code 0xC00F9304. There may be error messages post 
ed before this with more information on why the AcquireConnection method call fa 
iled. 
End Error 
Error: 2012-10-26 19:33:27.78 
    Code: 0xC0047017 
    Source: Data Flow Task SSIS.Pipeline 
    Description: component "Excel Destination" (22) failed validation and returne 
d error code 0xC020801C. 
End Error 
Error: 2012-10-26 19:33:27.78 
    Code: 0xC004700C 
    Source: Data Flow Task SSIS.Pipeline 
    Description: One or more component failed validation. 
End Error 
Error: 2012-10-26 19:33:27.79 
    Code: 0xC0024107 
    Source: Data Flow Task 
    Description: There were errors during task validation. 
End Error 
DTExec: The package execution returned DTSER_FAILURE (1). 
Started: 7:33:27 PM 
Finished: 7:33:27 PM 
Elapsed: 0.343 seconds 

Pls मदद करें! :) .... क्या मुझे सभी चर, कनेक्शन प्रबंधक और सब कुछ मेरी कॉन्फ़िगरेशन फ़ाइल में जोड़ना चाहिए? वर्तमान में मैंने केवल चर और कनेक्शन प्रबंधकों के कुछ खाली मूल्य जोड़े हैं, लेकिन कोई कॉम्बो प्रभावी ढंग से काम नहीं कर रहा है।

+0

+1 के रूप में यह एक आम त्रुटि है और कई पढ़ने से फायदा हो सकता है सभी त्रुटियों को समझने और समाधान पर पहुंचने के माध्यम से। –

उत्तर

11

पहली त्रुटि जो मैं संबोधित करूंगा वह है "एक्सेल कनेक्शन प्रबंधक एसएसआईएस के 64-बिट संस्करण में समर्थित नहीं है, क्योंकि ओएलई डीबी प्रदाता उपलब्ध नहीं है।"

बॉक्स के बाहर एक्सेल ड्राइवर केवल 32 बिट पता स्थान में मौजूद हैं। बीआईडीएस/एसएसडीटी एक 32 बिट एप्लीकेशन है इसलिए एक्सेल स्रोत और गंतव्य ठीक काम करते हैं। हालांकि, जब आप उन्हें कमांडलाइन/एसक्यूएल एजेंट से चलाते हैं, तो आपको डीटीईएक्सईसी कार्यक्रम के 32 बिट संस्करण का स्पष्ट रूप से उपयोग करने की आवश्यकता है।

चरण 1, यह सुनिश्चित करना होगा कि आप उस सर्वर पर कमांड लाइन से पैकेज चला सकें जो एजेंट आपके जैसा निष्पादित करता है। मान लिया जाये कि अपने एसक्यूएल सर्वर प्रथागत स्थान में स्थापित किया गया है, तो आप शायद उपलब्ध निम्नलिखित DTExec.exe में से एक आप

C:\Program Files\Microsoft SQL Server\90\DTS\Binn\DTExec.exe 
c:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe 
C:\Program Files\Microsoft SQL Server\110\DTS\Binn\DTExec.exe 
C:\Program Files\Microsoft SQL Server\120\DTS\Binn\DTExec.exe 
C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\DTExec.exe 
C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe 
C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\DTExec.exe 
C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\DTExec.exe 

आप (x86) संस्करण का उपयोग करना चाहते हैं के लिए है। भविष्य के पाठक, यदि आप विंडोज के 32 संस्करण (विंडोज 2003, शायद) पर होते हैं, तो पहले 3 आपके लिए उपलब्ध एकमात्र विकल्प होंगे। चूंकि विवेक के त्रुटि संदेश ने संकेत दिया है, वह 64 बिट मोड में एक एसएसआईएस पैकेज निष्पादित कर रहा है।

dtexec एक कमांड लाइन स्विच /X86 प्रदान करता है ताकि आप 32 और 64 बिट ऑपरेशंस दोनों के लिए एक ही निष्पादन योग्य का उपयोग कर सकें। LIES! प्रलेखन उस पर कॉल करता है लेकिन दस्तावेज़ीकरण कौन पढ़ता है?

यह विकल्प केवल SQL सर्वर एजेंट द्वारा उपयोग किया जाता है। यदि आप कमांड प्रॉम्प्ट पर dtexec उपयोगिता चलाते हैं तो यह विकल्प को अनदेखा कर दिया गया है।

तो, आप स्पष्ट पथ

C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe /file C:\folder\GICSReport.dtsx

मैं देख रहा हूँ प्रदान करके अपने पैकेज चलाने की आवश्यकता होगी अपने उत्पादन में "संरक्षित एक्सएमएल नोड को डिक्रिप्ट करने में विफल" और आप में यह भी बताया आप विन्यास का उपयोग कर रहे फाइलें ताकि आप डिफ़ॉल्ट रूप से अपने पैकेजप्रणालीलेवल को डिफ़ॉल्ट एन्क्रिप्शन सेंसिटिव WithUserKey से DontSaveSensitive में बदल सकते हैं। संवेदनशील डेटा (पासवर्ड) के आकस्मिक एक्सपोजर को रोकने के लिए यह सुविधा मौजूद है, लेकिन चूंकि आप पहले ही कॉन्फ़िगरेशन फ़ाइलों के साथ इसे संभालने वाले हैं, इसलिए यह कोई समस्या नहीं होनी चाहिए। ... यह वास्तव में अन्य पैकेज सुरक्षा स्तरों में से एक त्रुटि हो सकती है जो अब मैं इसके बारे में सोचता हूं।

किसी भी दर पर, पहले 32 बिट निष्पादन योग्य से चलने का प्रयास करें।यदि यह काम नहीं करता है तो संकेत के अनुसार पैकेज सुरक्षा स्तर को बदलने का प्रयास करें। यदि इनमें से कोई भी पैकेज अपेक्षित के रूप में चलाता है, तो SQL एजेंट से एक ही कमांड चलाने का प्रयास करें।

यदि यह सब काम करता है, तो इसे उत्तर के रूप में चिह्नित करें। यदि नहीं, तो कृपया उत्पन्न होने वाली वर्तमान त्रुटि के साथ टिकट अपडेट करें और हम अधिक जानकारी मांगेंगे।

+2

सामान्य बिल के रूप में अच्छा जवाब! –

0

यदि आप एक्सेल आयात वाले ट्रांज़ेक्ट एसक्यूएल से dtexec के साथ एक एसएसआईएस पैकेज चलाने की कोशिश कर रहे हैं तो समाधान यहां है।

  1. एक बैच फ़ाइल बनाएं जिसमें निम्न कोड शामिल है।

    cd C: \ Program Files (x86) \ Microsoft SQL सर्वर \ 100 \ DTS \ Binn \ DTExec.exe/डे "password"/एफ "C: \ mySSISfolder \ package.dtsx"

  2. अपनी बैच फ़ाइल पर एक शॉर्टकट पॉइंटिंग बनाएं, व्यवस्थापक के रूप में चलाने के लिए शॉर्टकट पर properties\advanced सेट करें।

  3. से अपने चलाना एसक्यूएल प्रक्रिया निम्न आदेश

    कार्यकारी चलाने

    xp_cmdshell 'C: \ MyFolder \ runssis_sc.lnk'